Показать сообщение отдельно
  #12  
Старый 08.01.2017, 12:21
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Проверяю в потоке (по таймеру все равно не так работало)
Без синхрона на Getstate не хочет работать. Waitme - sleep без фризов интерфейса. Синхроном работает, но только если курсор на форме
Код:
procedure TStateKB.Execute;
begin
while not Terminated do

  GetState;
  WaitMe(300)

end;

procedure TStateKB.GetState;
var State: TKeyboardState; r: Boolean;
begin
Application.ProcessMessages;
  r :=  CtrlDown;
       Win.ctrl:=r;
end;
Ну и проверка как-то так.
Код:
    if CTRL then

            Synchronize(Something);
Еще, до проверки есть
Код:
function EnumWindowsProc(h: HWND; lParam: lParam): Boolean; stdcall;
var CN: array [0 .. 1023] of Char; i: integer; s: string; WndRect: TRect;
begin
  Application.ProcessMessages;
  Result := TRUE;
----
и все работает, независимо где курсор, пока нет искомого окна
Ответить с цитированием