[..] HotKeySet accumuler des touches...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

[..] HotKeySet accumuler des touches...

#1

Message par Yoyo86220 »

Bonsoir,

je voudrai que "HotKeySet" réagisse au frappe suivante

Ctrl+Alt (enfoncé pendant tte la procédure) puis 1.. 2.. 3...

le mm principe pour écrire les lettres comme ceci ø = Alt+1..5..5

Dans AutoIt:
je sais que Ctrl = ^ et que Alt = ! mais je n'arrive pas à faire les combinaisons de touche (expliqué précédemment)
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] HotKeySet accumuler des touches...

#2

Message par jbnh »

Est ce vraiment nécessaire cette notion de touche maintenue enfoncée? A partir du moment qu'elle est enfoncée c'est bon non? Ou alors il faut vraiment qu'elles restent enfoncées pour ne pas déclencher une autre commande?

sinon tu fais un hotkeyset ctrl alt qui renvoi vers une fonction avec des ispressed()
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [..] HotKeySet accumuler des touches...

#3

Message par Yoyo86220 »

Donc il faudrai que Ctrl+Alt reste enfoncé parce que en faite puisque que je n'est pas de Gui et quand j'utilise mes touche racourci bah si je ne reste pas apuyé sur ctrl+alt sa va écrir dans le programme ou je suis...
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] HotKeySet accumuler des touches...

#4

Message par timmalos »

Utilise l'idée de JBNH, qui donne à peu pres, (pas testé)

Code : Tout sélectionner

#include <Misc.au3>
HotKeySet("^!","ctrlalt")


While 1
    Sleep(100)
WEnd    



Func ctrlalt ()
    IF _ISpressed("31") then ... ; 01 du pavé numerique
    IF _ISpressed("32") then ... ; 02 du pavé numerique
    IF _ISpressed("33") then ... ; 03 du pavé numerique
EndFunc 
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] HotKeySet accumuler des touches...

#5

Message par SagePourpre »

timmalos a écrit :Utilise l'idée de JBNH, qui donne à peu pres, (pas testé)

Code : Tout sélectionner

#include <Misc.au3>
HotKeySet("^!","ctrlalt")


While 1
    Sleep(100)
WEnd    



Func ctrlalt ()
    IF _ISpressed("31") then ... ; 01 du pavé numerique
    IF _ISpressed("32") then ... ; 02 du pavé numerique
    IF _ISpressed("33") then ... ; 03 du pavé numerique
EndFunc 

hmmm... Chez moi ça ne marchait pas. (J'ai bien sur complété les if then avant de la tester.

Pour y parvenir, j'ai utilisé à la place d'une fonction des boucles

Code : Tout sélectionner

#include<misc.au3>
$dll = DllOpen("user32.dll")
While 1
    Sleep(100)
    
    While _IsPressed("11", $dll)
        
        While _IsPressed("12", $dll)
            Select
                Case _IsPressed("30", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 0")
                Case _IsPressed("31", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 1")
                Case _IsPressed("32", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 2")
                Case _IsPressed("33", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 3")
                Case _IsPressed("34", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 4")
                Case _IsPressed("35", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 5")
                Case _IsPressed("36", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 6")
                Case _IsPressed("37", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 7")
                Case _IsPressed("38", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 8")
                Case _IsPressed("39", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 9")
                    
                    
            EndSelect
            
        WEnd
    WEnd
    WEnd

Et ça fonctionnait très bien. Le seul hic, peut-être, est que CTRL + ALT + chiffre renvoie un symbole s'il y'a un champ texte actif. Mais sinon, ça va.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] HotKeySet accumuler des touches...

#6

Message par SagePourpre »

Tant qu'à faire... Voilà le même code, une boucle en moins

Code : Tout sélectionner

#include<misc.au3>
$dll = DllOpen("user32.dll")
While 1
    Sleep(100)
    
    While _IsPressed("11", $dll) And _IsPressed("12", $dll)
        
            Select
                Case _IsPressed("30", $dll)
                    
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 0")
                Case _IsPressed("31", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 1")
                Case _IsPressed("32", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 2")
                Case _IsPressed("33", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 3")
                Case _IsPressed("34", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 4")
                Case _IsPressed("35", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 5")
                Case _IsPressed("36", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 6")
                Case _IsPressed("37", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 7")
                Case _IsPressed("38", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 8")
                Case _IsPressed("39", $dll)
                    MsgBox(0, "", "Vous avez appuyez sur CTRL + ALT + 9")
                    
                    
            EndSelect
            
        WEnd
    
    WEnd
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre