Форум: "WinAPI";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];
ВнизXук на сообщение WM_SYSCOMMAND:SC_MAXIMIZE Найти похожие ветки
← →
Углук © (2007-07-02 19:02) [0]Делаю хук на сообщение WM_SYSCOMMAND:SC_MAXIMIZE/SC_MINIMIZE;
Var SysHook:HHook=0;
Function SysMsgProc(Code:Integer; WParam:LongInt; LParam:LongInt):LongInt; stdcall;
Var Msg:TMessage;
Begin
if Code = HCBT_SYSCOMMAND then
begin
if WParam=SC_MINIMIZE then
SendMessage(FOrm1.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0)
else if WParam=SC_RESTORE then
SendMessage(FOrm1.Handle,WM_SYSCOMMAND,SC_RESTORE,0);
end else CallNextHookEx(SysHook,Code,WParam,LParam);
end;
procedure Hook(Flag:Boolean;dwThreadId:DWORD); export; stdcall;
Begin
IF Flag then SysHook:=SetWindowsHookEx(WH_CBT,@SysMsgProc,HInstance,dwThreadId) Else
Begin
UnhookWindowsHookEx(SysHook);
SysHook:=0;
End;
End;
exports Hook;
Внутри программы выполняется:
dwDestThreadId:DWORD;
HDLL:DWORD;
begin
dwDestThreadId:= GetWindowThreadProcessId(H, nil);
@Hook:=nil;
HDLL:=LoadLibrary(pchar("Look.dll"));
@Hook:=GetProcAddress(HDLL,"Hook");
Hook(True,dwDestThreadId);
После чего целевое приложение, на которое ставится хук, перестает реагировать
на все нажатия мыши, клавиатуры и т.д. Kак решить?
← →
Rouse_ © (2007-07-02 22:09) [1]Ты разрываешь цепочку.
> Kак решить?
Передавать сообщение дальше по цепочке ловушек вызовом CallNextHookEx. Пересмотри логику своей SysMsgProc.
← →
Rouse_ © (2007-07-02 22:12) [2]Да, еще...
Var SysHook:HHook=0;
- это ошибка, читай статью по ловушкам на данном сайте от Алексея Павлова. Он там все разжевал.
← →
Углук © (2007-07-03 13:33) [3]В статье Алексея Павлова пример не компилируется.
← →
Углук © (2007-07-03 13:33) [4]То есть компилируется,сорри, но выдает ошибку загрузки DLL
← →
Углук © (2007-07-03 13:40) [5]В общем, благодаря совету Ins"а на Delphikingdom удалось избавиться от блокировки приложения, но...теперь вылазит AV при cовершении сворачивания окна...сейчас посмотрим, в чем дело
← →
Инс © (2007-07-03 14:00) [6]Вот на Delphikingdom я тебе и написал в чем проблема
← →
Углук © (2007-07-03 16:02) [7]Проблема решилась! Спасибо Инсу. Правда, остался один вопрос.
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=53346
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c