Получилось! Но как то на половину. Код:
Код:
function CBT_FUNC(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
const
WindowNameBufferSize = 1024;
var
hWindow: HWND;
RetVal : Integer;
WindowNameBuffer: Array[0..WindowNameBufferSize-1] of Char;
dwInvokerHandle:DWORD;
begin
//Result := CallNextHookEx(hhk, nCode, wParam, lParam);
if nCode<0 then exit;
case nCode of
HCBT_SYSCOMMAND:
begin
dwInvokerHandle := FindWindow(nil, 'HotShot 12');
if WParam = SC_RESTORE then
begin
//Sleep();
//ShowWindow(dwInvokerHandle, SW_HIDE);
//ShowMessage('1');
//PostMessage(dwInvokerHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
SendMessage(dwInvokerHandle, WM_SHOWWINDOW, SW_HIDE, SW_PARENTCLOSING);
end;
end;
end;
Result := CallNextHookEx(hhk, nCode, wParam, lParam);
end;
Теперь эффект однозначно есть, но программа всеравно выполняет функцию разворачивания окна, получается я могу только отследить момент разворачивания, а не перехватить?