![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не доходят месаги в хук!!!
volser © (2005-04-19 23:11:00)Вешаю глобальный хук
DLL:
function WndProc(code:integer; wParam:WPARAM; lParam:LPARAM):LRESULT; stdcall;
begin
if code=HC_ACTION then
begin
if PCWPStruct(Pointer(lParam))^.message=WM_DM_RESTORE then
begin
LogMes('Restore Message');
end;
end;
end;
procedure InstallHooks; stdcall;
Var
pid : DWord;
Wnd : Hwnd;
begin
Wnd:= FindWindow('ProgMan', nil);
if Wnd<>0 then
begin
pid:=GetWindowThreadProcessId(Wnd);
hWndProc:=SetWindowsHookEx(WH_CALLWNDPROC,WndProc, hInstance,pid);
end;
end;
procedure UnInstallHooks; stdcall;
begin
UnHookWindowsHookEx(hWndProc);
end;
........
Program:
procedure TformMain.FormDestroy(Sender: TObject);
begin
LogMes('RESTORE');
SendMessage(GetDesktopListViewHandle,WM_DM_RESTORE,0,0);
LogMes('UnHook');
UninstallHooks;
end;
Прога висит в трае и в поп ап меню есть итем Exit;
Когда просто запускаю и закриваю, то результат лога
RESTORE
Restore Message
UnHook
Но когда запускаю, нажимаю кнопку "свернуть все окна", сворачиваю, то результат
RESTORE
Restore Message
UnHook
Если перед закритием открываю любую прогу, то все ОК.
В чем прикол?
volser (2005-04-19 23:12:00) [1]Сори, во втором варианте результат лога
RESTORE
UnHook