Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.30;
Скачать: CL | DM;

Вниз

Перехват сворачивания и восстановления окон   Найти похожие ветки 

 
Vasily Terekhov   (2002-11-13 10:19) [0]

Привет
Как установить хук, чтобы я мог отслеживать сворачивание и восстановление всех окон?

Василий.


 
Song ©   (2002-11-13 10:31) [1]

WH_GETMESSAGE+WM_SYSCOMMAND
или
WH_CBT


 
Vasily Terekhov   (2002-11-13 11:01) [2]

Да
я именно так и делал:

но к сожалению SC_MINIMIZE и SC_RESTORE не отрабатывают :(
есть ошибка?

function MessageHook(Code : Integer; wParam, lParam: DWORD): Longint; stdcall;
var
Wnd: HWND;
W: HWND;
begin
Result := CallNextHookEx(HookHandle, Code, wParam, lParam);

if Code = HC_ACTION then
begin
Wnd := TMsg(Pointer(lParam)^).hwnd;
W := FindWindow(nil, "MessageHookForm");

if TMsg(Pointer(lParam)^).message = WM_SYSCOMMAND then
begin
case wParam of
SC_MINIMIZE: SendMessage(W, WM_SYSAPPMINIMIZE, Wnd, 0);
SC_RESTORE: SendMessage(W, WM_SYSAPPRESTORE, Wnd, 0);
end;
end;
end;
end;

procedure SetMessageHook;
begin
HookHandle := SetWindowsHookEx(WH_GETMESSAGE, @MessageHook, hInstance, 0);
if HookHandle = 0 then
MessageBox(0, "Set hook error", "ERROR", MB_ICONHAND);
end;

procedure RemoveMessageHook;
begin
if HookHandle <> 0 then
UnhookWindowsHookEx(HookHandle);
end;


 
Song ©   (2002-11-13 14:31) [3]

Дык это у Вас в программе вставлено?



Страницы: 1 вся ветка

Текущий архив: 2002.12.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
1-99105
Soul2
2002-12-18 05:30
2002.12.30
TStringList invert.


1-99076
tv
2002-12-19 15:58
2002.12.30
Стандартное PopupMenu в TRxRichEdit или TRichEdit


14-99350
Top Gun
2002-12-07 19:37
2002.12.30
Посоветуйте хорошую книгу для проффесионалов


4-99403
Arkan
2002-11-12 18:50
2002.12.30
Посылка строки с переходом на следующую строку!


1-99188
Passlight
2002-12-18 11:01
2002.12.30
Многострочный TTreeView