Как поставить глобальный хук на разворачивание окон

__Avenger__
Дата: 05.06.2009 17:06:14
SNike,

Да именно так.
Barmaley57
Дата: 05.06.2009 17:06:22
SNike
Получается что эта функция при исполнении оказывается в другом процессе и не видит переменных DLL ?


Если код исполняется из твоего процесса, то он видит глобалки. А в общем случае назначенная тобой функция перехвата исполняется системой в чужом адресном пространстве. Чтобы она увидела глобальные переменные - их надо делать разделяемыми. А это вопрос отдельный...
__Avenger__
Дата: 05.06.2009 17:07:59
SNike
Получается что эта функция при исполнении оказывается в другом процессе и не видит переменных DLL ?


http://www.delphikingdom.com/asp/viewitem.asp?catalogid=548
SNike
Дата: 05.06.2009 17:14:52
Точно, так я и думал!
Большое спасибо, это как раз то что доктор прописал :))
SNike
Дата: 05.06.2009 20:28:18
Barmaley57

Чтобы она увидела глобальные переменные - их надо делать разделяемыми. А это вопрос отдельный...

Попробую для этих целей использовать Singleton COM-Server
Barmaley57
Дата: 05.06.2009 20:34:54
SNike
Barmaley57

Чтобы она увидела глобальные переменные - их надо делать разделяемыми. А это вопрос отдельный...

Попробую для этих целей использовать Singleton COM-Server


Из пушки по воробьям? Чем memory mapped files не устраивают?
SNike
Дата: 05.06.2009 22:02:59
Barmaley57

...Чем memory mapped files не устраивают?


Нужно использовать TStringList. В зависимости от кол-ва элементов он будет менять свой размер, поэтому не уверен можно ли использовать memory mapped files. Можно попробовать передавать Pointer на него, но опять же не уверен пройдет ли такое
Гаджимурадов Рустам
Дата: 05.06.2009 22:15:13

SNike
Нужно использовать TStringList. В зависимости от кол-ва элементов он будет менять свой размер, поэтому не уверен можно
ли использовать memory mapped files.

Можно. На них построена чуть ли не половина ОС.

Posted via ActualForum NNTP Server 1.4

SNike
Дата: 05.06.2009 23:48:15
Понял, спасибо. Попробую потренироваться на таком варианте:
PMemMappedData = ^TMemMappedData;
TMemMappedData = packed record
    tslUserStrings:  TStringList;
    UserName: WideString;
  end
Зайцев Фёдор
Дата: 06.06.2009 00:27:50
Думаю, не стоит использовать WideString