Bug Windows API
Le
Sivaller
Bonjour
Voilà un exemple qui est censer de fonctionner , c'est à dire interdire le
clique gauche
sur la souris.
Windows bug ! le hook n'est même pas appeler
J'ai besoin d'interdire les cliques de souris pour pouvoir grabber la souris
sur mon emulateur !
Apparament Windows est buggé , je suis bloquer ! je perd du temps
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
procedure FormActivate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
hookMessage:HHOOK ;
procedure TForm1.FormActivate(Sender: TObject);
begin
//Cursor := crnone;
end;
function fonctionIntercepteMessage (nCode : integer;wParam : WParam;lParam:
lParam) : longword; stdcall;
var r : longword;
ob : boolean;
begin
ob := true;
r := 0;
if (wParam = WM_LBUTTONDOWN) then
ob := false;
if ob then r:= CallNextHookEx(hookMessage, nCode, wParam, lParam);
fonctioninterceptemessage := r;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
UnhookWindowsHookEx(hookmessage);
end;
procedure TForm1.FormCreate(Sender: TObject);
var modulecourant : longword;
begin
modulecourant :=hinstance;
hookmessage := SetWindowsHookEx(WH_MSGFILTER ,
@fonctionIntercepteMessage, moduleCourant, getcurrentthreadid);
end;
procedure TForm1.FormClick(Sender: TObject);
begin
label2.caption := 'oc'; // l'evenement est appeler même si le hook est
installer
end;
end.
Merci;
Voilà un exemple qui est censer de fonctionner , c'est à dire interdire le
clique gauche
sur la souris.
Windows bug ! le hook n'est même pas appeler
J'ai besoin d'interdire les cliques de souris pour pouvoir grabber la souris
sur mon emulateur !
Apparament Windows est buggé , je suis bloquer ! je perd du temps
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
procedure FormActivate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
hookMessage:HHOOK ;
procedure TForm1.FormActivate(Sender: TObject);
begin
//Cursor := crnone;
end;
function fonctionIntercepteMessage (nCode : integer;wParam : WParam;lParam:
lParam) : longword; stdcall;
var r : longword;
ob : boolean;
begin
ob := true;
r := 0;
if (wParam = WM_LBUTTONDOWN) then
ob := false;
if ob then r:= CallNextHookEx(hookMessage, nCode, wParam, lParam);
fonctioninterceptemessage := r;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
UnhookWindowsHookEx(hookmessage);
end;
procedure TForm1.FormCreate(Sender: TObject);
var modulecourant : longword;
begin
modulecourant :=hinstance;
hookmessage := SetWindowsHookEx(WH_MSGFILTER ,
@fonctionIntercepteMessage, moduleCourant, getcurrentthreadid);
end;
procedure TForm1.FormClick(Sender: TObject);
begin
label2.caption := 'oc'; // l'evenement est appeler même si le hook est
installer
end;
end.
Merci;

Poser une question


C'est c'là, oui...
Ton programme, oui, il est buggé.
Lis la doc de la callback et des paramètres...
Tu nous as déjà tenu ces propos des dizaines de fois, à propos de tout,
compilateurs, Windows, librairies diverses... et sur plusieurs groupes
de discussions.
Tu ne te remets jamais en cause hein ?
J'ai hooké des dizaines de fois souris et claviers, des milliers (des
millions peut être ?) de personnes ont fait de même. S'il y avait tant
de bugs ça se saurait....
Moi il me semble qu'en lisant la doc Microsoft et en faisant preuve d'un
minimum de talent de programmeur, le hooking se passe très bien.
--
Alain
Est-ce que tu as prévenu Bill Gates, il pourrait surement t'embaucher pour
règler le problème.
--
BlueR
Ca se saurait...
:-)