Page 1 sur 1

[..] HotKeySet accumuler des touches...

Posté : mer. 20 août 2008 01:30
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)

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

Posté : mer. 20 août 2008 09:41
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()

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

Posté : mer. 20 août 2008 13:02
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...

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

Posté : mer. 20 août 2008 21:28
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 

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

Posté : lun. 25 août 2008 09:08
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.

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

Posté : lun. 25 août 2008 10:43
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