Witajcie,
Mam taki sobie prosty kod w mojej DLL:
function HookProc(nCode: Integer; MsgID: WParam; Data: LParam): LResult; stdcall;
var
mousePoint: TPoint;
begin
mousePoint := PMouseHookStruct(Data)^.pt;
if MsgID = WM_LBUTTONDOWN then
begin
PostMessage(FindWindow('TMainHookTestForm', nil),
MouseHookMessage, Integer(mousePoint.X), Integer(mousePoint.Y));
end;
Result := CallNextHookEx(Hook,nCode,MsgID,Data);
end;
procedure HookMouse; stdcall;
begin
if Hook = 0 then Hook:=SetWindowsHookEx(WH_MOUSE,@HookProc,HInstance,0);
end;
procedure UnHookMouse; stdcall;
begin
UnhookWindowsHookEx(Hook);
Hook:=0;
end;
Kod działa bezproblemowo na pulpicie, innych aplikacjach itd. Nawet na moim laptopie działa bezproblemowo również w IE. A na tablecie z Win8 gdzie nie ma myszki tylko ekran dotykowy WM_LBUTTONDOWN działa WSZĘDZIE prócz IE. Czy ktoś wie dlaczego?