Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.13;
Скачать: CL | DM;

Вниз

Ошибка в глобальном хуке?   Найти похожие ветки 

 
IGOREK ©   (2002-04-10 02:57) [0]

Происходит ошибка, когда переводим мышку за пределы окна программы:

unit HookUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

function HookProc1(HookCode: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
HookHandle1: hHook;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function HookProc1(HookCode: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT;
begin
Result := CallNextHookEx(Form1.HookHandle1, HookCode, wparam, lparam);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
HookHandle1 := SetWindowsHookEx(WH_Mouse, HookProc1, hInstance, 0);
end;
end.


 
Alx2 ©   (2002-04-10 08:10) [1]

Вот это "SetWindowsHookEx(WH_Mouse, HookProc1, hInstance, 0);"
исправить надо на это
"SetWindowsHookEx(WH_Mouse, HookProc1, hInstance, GetCurrentThreadID);"

Иначе криво пытается сделаться глобальный хук.


 
Fellomena   (2002-04-10 10:47) [2]

SetWindowsHookEx(WH_Mouse, HookProc1, hInstance, 0); // попытка установить глобальный хук, который по определению не возможно установить из *.exe файла
Alx2 правильно сказал:
SetWindowsHookEx(WH_Mouse, HookProc1, hInstance, GetCurrentThreadID); // устанавливает хук в контексте данного потока


 
IGOREK ©   (2002-04-10 13:14) [3]

Как же тогда сделать глобальный хук напр. на мышку? (через DLL?)


 
Fellomena   (2002-04-10 13:21) [4]

...и только в DLL - иного пути нет.
(см. статьи на этом сайте)



Страницы: 1 вся ветка

Текущий архив: 2002.06.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
6-40136
Aleksandr
2002-04-05 12:49
2002.06.13
Как узнать, является указанный путь сетевым или локальным?


6-40141
Serd_hhc
2002-03-30 13:44
2002.06.13
Как написать свой Server (типа TServerSocket) с uses WinSock?


1-40021
esprit_bel
2002-05-23 05:51
2002.06.13
Завершение сеанса


14-40186
Дремучий
2002-05-07 22:28
2002.06.13
cat


14-40174
Ajax
2002-05-12 17:35
2002.06.13
Ну не верю я, что ни кто ответа не знает...