Тема: multiwin
Показать сообщение отдельно
Старый 15.03.2015, 02:05   #2
Новичок
 
Регистрация: 06.12.2011
Сообщений: 1
Сказал Спасибо: 0
Имеет 1 спасибку в 1 сообщении
wSpirit пока неопределено
По умолчанию

Если еще кто-то будет искать решение такой проблемы под Интерлюд, то для себя сделал так:

1) Узнал Хэндл главного окна
2) Перехватил оконную процедуру
3) Заблокировал сообщение о потери фокуса

Тоесть клиент так и не узнает что окно потеряло фокус, и не снизит фпс


Код:
Код:
var
  MainHwnd: Integer;
  OldL2WndProc: function(hwnd,uMsg,wParam,lParam: Integer): Integer; stdcall;

function NewL2WndProc(hwnd,uMsg,wParam,lParam: Integer): Integer; stdcall;
begin
  if hwnd = MainHwnd then
  if uMsg = $0008 then //WM_KILLFOCUS
  begin
    Result:= 0;
    Exit;
  end;

  Result:= CallWindowProc(@OldL2WndProc, hwnd,uMsg,wParam,lParam);
end;


//hook wnd proc
    MainHwnd:= hWnd;
    Integer(@OldL2WndProc):= GetWindowLong(MainHwnd, GWL_WNDPROC);
    SetWindowLong(MainHwnd, GWL_WNDPROC, Integer(@NewL2WndProc))
wSpirit вне форума   Ответить с цитированием
За это сообщение wSpirit нажился спасибкой от: