Simulation de touches

Signaler
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Pour simuler une touche du clavier en ecrie
KeyBd_Event(VK_Touche,0,0,0); //enfoncé
KeyBd_Event(VK_Touche,0,1,0);  //relacher
quelq'un peut m'éxpliquer les 0 et les 1 ???? a quoi sert ? pour quoi il nya pas un seul 0 et 1 seul 1 ???

5 réponses


Salut,

Qui c'est qui va se faire engueuler par Francky car il a pas cherché  : ? C'est Hardouz, le roi du keylogger  dit aussi le roi de la boulette .

Mon petit poussin, si au lieu de poser cette question, forte intéressante je te l'accorde, tu avais pris un tout petit peu la peine de chercher, mais vraiment un chouilla, tu aurais eu ta réponse avec une rapidité fulgurante : un truc tu en restes sur les fesses. Allez je t'ai assez chambré : la réponse est ici.

Par contre on n'a rien contre un ptit bonjour et un ptit merci 
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
// Simulate a key press
keybd_event( VK_NUMLOCK,
$45,
KEYEVENTF_EXTENDEDKEY or 0,
0 );

// Simulate a key release
keybd_event( VK_NUMLOCK,
$45,
KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
0);




http://msdn2.microsoft.com/en-us/library/ms646304.aspx




<hr size="2" width="100%" />
Croc (click me)
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
44
Salut,

Petit complément a l'éxemple donné par  F0xi :

  KEYEVENTF_EXTENDEDKEY = 1;
  KEYEVENTF_KEYUP = 2;

Donc déjà ton code de départ n'était pas juste

<hr size="2" width="100%" />

@F0xi :

aurais-tu une explication à ceci

Pour le deuxième argument " bScan " de la fonction "keybd_event", dans mon aide (TurboDelphi)
il est dit "This parameter is not used"

Extrait de l'aide de TurboDelphi

Windows NT/2000/XP:This function has been superseded. Use <mshelp:link tabindex ="0" xmlns:mshelp= "http://msdn.microsoft.com/mshelp" keywords="_win32_SendInput_cpp">SendInput</mshelp:link> instead.

Syntax

VOID keybd_event(      

    BYTE  bVk ,
    BYTE bScan,
    DWORD dwFlags,
    PTR dwExtraInfo
);

Parameters

* bVk : [in] Specifies a virtual-key code. The code must be a value in the range 1
to 254. For a complete list, see <mshelp:link tabindex =\"0\" xmlns:mshelp= \"http://msdn.microsoft.com/mshelp\" keywords=\"_win32_Virtual_Key_Codes_cpp\">Virtual-Key Codes</mshelp:link>.
* bScan : This parameter is not used. * dwFlags : <dd>[in] Specifies various aspects of function operation. This parameter can be
one or more of the following values.
<dl> * : KEYEVENTF_EXTENDEDKEYIf specified, the scan code was preceded by a prefix byte having the value
0xE0 (224).
* : KEYEVENTF_KEYUPIf specified, the key is being released. If not specified, the key is being
depressed.
</dd><dt> dwExtraInfo </dt><dd>[in] Specifies an additional value associated with the key stroke.
</dd></dl>Return Value

This function has no return value.

Et en plus ... j'ai le même exemple que celui qui est sur le lien que tu donnes

Et pour finir ... j'ai testé ceci et ça fonctionne :

keybd_event(VK_NUMLOCK, 0, 0, 0);
keybd_event(VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0);

Par contre, il est conseillé d'utiliser SendInput à la place mais ça ne change rien au "mystère" puisqu'il utilise le même type d'info en entré sous forme de tag.

C'est quand même un peut déroutant ce type de contradiction ... non
 
@+
Cirec

<hr size ="2" />
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Salut,

L'aide de la msdn est un peu plus explicative sur le sujet.

(Vous avez peut être eu cette page plutôt).

En tout cas : should not use et quelques lignes plus loin, ils l'utilisent pour le printscreen... C'est pas limpide.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Apparement, le scan code, c'est plus hardware,et dépend du clavier, alors que le virtual key c'est plus ce qui est récupéré en soft, dans les messages WM_KEYDOWN par exemple. Et après le WM_KEYDOWN, c'est traduit en caractère...