OVH Cloud OVH Cloud

Soucis avec WM_KEYDOWN

3 réponses
Avatar
Sivaller
Bonjour

Voilà j'ai fait un petit appli qui intercepte les données claviers.

Probléme : quand je combine AltGR + (touche clavier) , ça fonctionne , par
contre quand
je combine le Alt + (touche clavier) eh bien l'événement n'est pas appelé,
et avec WM_KEYUP , l'évenement est appelé mais on connais uniquement le code
de la touche ALT mais pas celle de la touche combiné.

Comment faire marcher cette touche ALT ?

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
procedure wm(var m : tmessage); message WM_KEYDOWN;
end;

var
Form1: TForm1;
num : word;

implementation

{$R *.DFM}
procedure tform1.wm(var m : tmessage);
begin
label1.caption := inttostr(num)+' virtkey:'+inttostr(m.wparam)+'
'+inttostr((m.lparam shr 24) and 1)+' Char OEM:'+inttostr((m.lparam shr
16)and $ff);

inc(num);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
num := 0;
end;

end.


Merci ;

3 réponses

Avatar
Christian ASTOR
Sivaller wrote:

je combine le Alt + (touche clavier) eh bien l'événement n'est pas appelé



WM_SYSKEYDOWN
Avatar
Vincent Burel
"Christian ASTOR" wrote in message
news:456a281c$0$21149$
Sivaller wrote:

> je combine le Alt + (touche clavier) eh bien l'événement n'est pas


appelé

WM_SYSKEYDOWN



ou un WM_CHAR avec un GetKeyState derriere pour avoir l'état des touches de
fonctions.
Avatar
Sivaller
En faites il faut utiliser WM_KEYDOWN et WM_SYSKEYDOWN pour l'histoire de la
touche ALT.

"Christian ASTOR" a écrit dans le message de
news:456a281c$0$21149$
Sivaller wrote:

> je combine le Alt + (touche clavier) eh bien l'événement n'est pas


appelé

WM_SYSKEYDOWN