émuler une frappe au clavier

cs_shakeoff1 Messages postés 12 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 16 février 2009 - 26 avril 2004 à 15:15
cp71 Messages postés 1 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 4 septembre 2004 - 4 sept. 2004 à 17:19
bonjour,
voila je me demandais si par hasard il ne serai pas possible d'émuler un frappe au clavier par une procedure.

je sais que cela parait tout a fait futile mais cela s'avererais bien utile pour moi
merci d'avance.

4 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
26 avril 2004 à 17:35
Salut,
Tu peux envoyer les messages WM_KEYDOWN et WM_KEYUP avec la procédure PostMessage. Il y a des paramètres à passer (voir aide) et il faut encore savoir à qui on envoie le message. Tout dépend de ce que tu veux faire.

Kénavo

Code, Code, Codec !
0
cs_shakeoff1 Messages postés 12 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 16 février 2009
27 avril 2004 à 10:07
merci pour l'aide,
pourrais tu me donner une exemple d'utilisation stp?

mon but c'est que le programme émule a un moment donner une frappe clavier (n'importe laquelle) dans un champ dbedit a définir.

j'ai eisseillé un truc du style :

...
begin
EditKeyPress(self,#32);
for i := 0 to DMApplic.DSChamp.DataSet.FieldCount - 1 do
begin
Edit := TwwDBEdit(FmAwiphParamListField.FindComponent('Edt' + IntToStr(i)));
...

la déclaration de la procédure Editkeypress:

Procedure EditKeyPress(Sender: Tobject; var Key:Char);

comme vous l'aurrez deviner c'est un procédure qui intercept un frappe clavier .....
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
27 avril 2004 à 10:58
Salut,

Voilà un bout de code qui copie caractère par caractère le Texte de Edit1 dans Edit2.
J'utilise ici le message WM_CHAR qui est plus simple que la paire (WM_KEYDOWN, WM_KEYUP)

Kénavo

procedure TForm1.Button1Click(Sender: TObject);
var
Hndl : THandle;
Carac : Char;
begin
Hndl := Edit2.Handle;
If Edit1.Text = '' then
exit;
Carac :=Edit1.Text[1];
// Envoie le caractère Carac à Edit2
PostMessage(Hndl,WM_CHAR,ord(Carac),1);
Edit1.Text := copy(Edit1.Text,2,Length(Edit1.Text)-1);
end;

Code, Code, Codec !
0
cp71 Messages postés 1 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 4 septembre 2004
4 sept. 2004 à 17:19
Salut,

Je cherche à simuler l'appuie d'une touche de fonction (F1 à F10) dans une autre application depuis une application Delphi.
Si qqu'un aurait une idée.

Merci d'avance
0
Rejoignez-nous