Показать сообщение отдельно
  #3  
Старый 12.03.2014, 15:00
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от reqyz
...если программа делает ещё что либо кроме хуков, то каждый раз она ожидает все остальные задачи, а только потом работает с мышью, в итоге пока она выполняет остальные задачи, мышь не шевелится...
Как не пытался засадить "обычного" мышиного перехватчика, в смысле типа
Код:
var
MouseHook: HHOOK;

function LowLevelMouseProc(nCode: Integer;
     WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;
var
 s: string;
begin
 Result:= CallNextHookEx(MouseHook, nCode, WParam, LParam);
 case WParam of
   WM_LBUTTONDOWN:   s:= 'LBUTTONDOWN';
   WM_LBUTTONUP:     s:= 'LBUTTONUP';
   WM_LBUTTONDBLCLK: s:= 'LBUTTONDBLCLK';
   WM_RBUTTONDOWN:   s:= 'RBUTTONDOWN';
   WM_RBUTTONUP:     s:='RBUTTONUP';
   WM_RBUTTONDBLCLK: s:= 'RBUTTONDBLCLK';
   WM_MBUTTONDOWN:   s:= 'MBUTTONDOWN';
   WM_MBUTTONUP:     s:= 'MBUTTONUP';
   WM_MBUTTONDBLCLK: s:= 'MBUTTONDBLCLK';
   WM_MOUSEMOVE:     s:= 'MOUSEMOVE';
   WM_MOUSEWHEEL:    s:= 'MOUSEWHEEL';
 end;
 Form1.Memo1.Lines.Add(s + ': ' +
 IntToStr(Mouse.CursorPos.X) + 'X' +
 IntToStr(Mouse.CursorPos.Y));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
MouseHook:= SetWindowsHookEx(WH_MOUSE_LL {14}, @LowLevelMouseProc, HInstance, 0);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin
UnhookWindowsHookEx(MouseHook);
end;
всякой разной программной ерундой, но так этого и не удалось сделать, работает как швецарские ходики, без нареканий
Ответить с цитированием