Page 1 sur 1

[R] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 00:10
par erreur
Bonjour à tous,

je voulais savoir s'il était possible que l'Autoit pouvait reconnaitre deux touches en même temps avec la fonction _IsPressed() ou avec HotKeySet().

Merci de vos réponse.

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 00:59
par Tlem
Pour HotKeySet, il suffit de lire ce qui est écrit dans la documentation :
HotKeySet ( "key" [, "function"] )
key The key combination to use as the hotkey. Same format as Send().
Donc Oui.

Pour _IsPressed la doc dit :
_IsPressed($sHexKey[, $vDLL = 'user32.dll'])
$sHexKey Key to check for
Donc une seule touche.
Par contre rien ne vous empêche de faire une fonction qui test en suivant plusieurs touches et donc se rapprocherais de la demande.
Sinon, vous pouvez utilisez ceci : http://www.autoitscript.com/forum/index ... opic=88562

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 11:34
par erreur
Si on utilise la fonction HotKeySet() peut-on faire une combinaison de touche autre qu'avec CTRL, ALT, SHIFT...
Par exemple pourrait-on faire vérifier si cette combinaison est appuyée : z + "flèche du haut" ?

Merci de vos réponse.

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 11:54
par Tlem
Dans mon post précédent, la phrase soulignée : The key combination
signifie combinaison de touches.
Donc cela répond à votre question.

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 13:30
par erreur
Je ne comprend pas, comment dois-je écrire la combinaison ?
HotKeySet("z{UP}","fonction") ?

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 13:49
par Tlem
Est-ce qu'il vous arrive de lire l'aide de temps en temps ???
Documentation de la commande Send()

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 14:02
par erreur
Oui mais dans ce document il n'explique que les combinaisons avec CTRL, ALT, SHIFT...
Mais sachant que je parle très mal Anglais, il est fort probable que je n'ai pas du comprendre comment faire...
Pouvez-vous m'expliquer ?

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 14:35
par Tlem
Même en ne parlant pas beaucoup Anglais, un minimum est requis.
Et dans le lien que je vous ait donné, il y à des choses évidentes ...
'+'
This tells AutoIt to send a SHIFT keystroke, therefore Send("Hell+o") would send the text "HellO". Send("!+a") would send "ALT+SHIFT+a".
'!'
This tells AutoIt to send an ALT keystroke, therefore Send("This is text!a") would send the keys "This is text" and then press "ALT+a".
'^'
This tells AutoIt to send a CONTROL keystroke, therefore Send("^!a") would send "CTRL+ALT+a".
'#'
The hash now sends a Windows keystroke; therefore, Send("#r") would send Win+r which launches the Run dialog box.

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 16:03
par erreur
Oui mais cela ne m'avance pas, c'est combinaisons de touches contiennent les touches CTRL, ALT, SHIFT ... Moi je voudrais savoir comment comment puis-je vérifier qu'on appuie sur "z" + "la flèche haut" en même temps.

Re: [..] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 17:59
par Tlem
Pour la flèche haut, si vous aviez lu la doc de la commande Send() vous auriez trouvé ceci :
{UP} Up arrow
.

Cela dit, j'avais compris au départ que vous parliez de la touche 'Shift' ... Autant pour moi.
Après quelques tests il semble que la combinaison 'Flèche Haut + z' ne fonctionne pas avec HotKeySet.

Je vous suggère donc de vous orienter vers la fonction _IsPressedEx dont je vous ai donné le lien précédemment.

Edit : Je ne sais pas pourquoi je suis parti dans une telle complication, mais la fonction _IsPressed ce suffit à elle même.
Il vous suffit de faire deux contrôles consécutifs.

Re: [R] Appuyer sur deux boutons en même temps

Posté : dim. 08 mars 2009 18:01
par erreur
D'accord merci pour votre aide.