Показать сообщение отдельно
  #4  
Старый 14.12.2017, 10:07
PiksEva PiksEva вне форума
Прохожий
 
Регистрация: 13.12.2017
Сообщения: 3
Версия Delphi: xe7
Репутация: 10
По умолчанию

Получилось! Но как то на половину. Код:

Код:
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;

Теперь эффект однозначно есть, но программа всеравно выполняет функцию разворачивания окна, получается я могу только отследить момент разворачивания, а не перехватить?
Ответить с цитированием