Page 1 sur 3

[..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 00:13
par quelqun
salut :)
je viens de découvrir le langage autoit et je trouve déjà une difficulté avec la fonction hotkeyset()
plus précisément avec les caractères spéciaux comme @
par exemple:

Code : Tout sélectionner

hotkeyset("@","function")
ça bug :? pourtant j'ai assez chercher sur google
quelqu'un aurait-il une solution?
merci

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 00:24
par bloodwolff
Euh je ne connais pas de clavier ou il y a une touche @ . Chez moi il faut appuyer sur ctrl+alt+2

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 00:39
par jbnh
The following hotkeys cannot be set:

Ctrl+Alt+Delete It is reserved by Windows

F12 It is also reserved by Windows, according to its API.

NumPad's Enter Key Instead, use {Enter} which captures both Enter keys on the keyboard.

Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.

Alt, Ctrl, Shift, Win These are the modifier keys themselves!

Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.
cfr doc

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 01:09
par ani
bonjour et soyez le bienvenu parmis nous.

l'erreur est toute bête, vous devez pour cela indiquer l'arobase entre accolade.

HotKeySet("{@}", "function")


bonne continuation ;)

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 08:41
par legend
J'ai une petite question sur hotkey moi aussi :P
S'est possible de désactiver un hotkeyset avec un ligne.
(je parle du truc du genre hotkeydisable.)
Merci et bonne journée.

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 09:21
par Jerome
Coucou,


Je ne pense pas.

Pour moi, il suffit simplement de ré-attribuer la touche.




Jérôme

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 11:05
par TommyDDR
Pour commencer, personnellement ce code fonctionne chez moi :

Code : Tout sélectionner

HotKeySet("@", "test")

While(True)
    Sleep(10)
WEnd

Func test()
    MsgBox(0, "", "")
    Exit
EndFunc
@ = AltGr + à (=> Ctrl + Alt + à)

Ensuite, pour annuler un hotkeyset, il suffit de rappeler la fonction HotKeySet en précisant la touche et de ne pas envoyer de 2nd paramètre :

HotKeySet("a", "MaFonction") => Associe la fonction "MaFonction" à la touche "a"
HotKeySet("a") => Retire l'association

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 11:36
par Fish
Et je me demandais un truc...
J'essaye de mettre un hotkeyset sur une touche, sa marche mais quand je veut par exemple taper cette touche dans un traitement de texte, sa ne l'écrit pas. Et même si je met un Send dans la fonction appelée par la touche, sa ne marche pas...

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 13:12
par jbnh
Faut passer par _ispressed pour faire cela

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 14:34
par Fish
Ah ok merci.
Mais le problème c'est que cette solution ne marche pas... :lol: En effet j'ai testé pour faire des flèches directionnelles .
Peut-être que j'ai mal procédé, je vais réessayer.

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 15:41
par jbnh
Dans la doc vous avez toutes les touches pour ispressed :
► Afficher le texte

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 17:12
par legend
@jbnh : C'est possible de le faire avec hotkey (je peut dire comment si vous voulez)
@jerome : que veut tu dire par "ré-attribuer la touche"?

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 18:30
par Fish
@legend : TommyDDR l'a déjà dit, on peut la réattribuer avec du "rien" :lol: :lol:
Voici l'exemple :

HotKeySet("a", "MaFonction") => Associe la fonction "MaFonction" à la touche "a"
HotKeySet("a") => Retire l'association

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 19:25
par legend
Bof, il est même possible de faire un petit If au début de la fonction avec un variable pour l'annuler . . .
Sinon la touche reste toujours inactive pour l'écriture.
Pour l'activer suffit de faire un control send dans la fonction du hotkey sur la fenêtre active . . .
bonne journée a tous

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 19:29
par Fish
Ben non legend, justement sa ne marche pas avec un send ()... J'ai déjà testé. :P
Bonne journée.

Re: [..] Fonction hotkeyset()

Posté : dim. 09 janv. 2011 21:01
par quelqun
avec le script ci-dessous ça marche:

Code : Tout sélectionner

HotKeySet("@", "test")

While(True)
    Sleep(10)
WEnd

Func test()
    MsgBox(0, "", "")
    Exit
EndFunc
mais je voudrais mettre un script du genre:

Code : Tout sélectionner

HotKeySet("@", "test")

While(True)
    Sleep(10)
WEnd

Func test()
    HotKeySet("@")
    send("@")
    HotKeySet("@", "test")
    Exit
EndFunc
ça bug gravement :cry:

Re: [..] Fonction hotkeyset()

Posté : lun. 10 janv. 2011 09:53
par Iste
Bon allé...

Code : Tout sélectionner

HotKeySet("m", "at")

While 1
    Sleep(1000)
WEnd

Func at()
    HotKeySet("m")
    Send("m")
    HotKeySet("m", "at")
EndFunc

Re: [..] Fonction hotkeyset()

Posté : lun. 10 janv. 2011 11:35
par quelqun
tu as essayer avec ça:

Code : Tout sélectionner

HotKeySet("@", "at")

While 1
    Sleep(1000)
WEnd

Func at()
    HotKeySet("@")
    Send("@")
    HotKeySet("@", "at")
EndFunc
 
:roll:
parce que ça bug et j'aimerais éviter cela :)

Re: [..] Fonction hotkeyset()

Posté : lun. 10 janv. 2011 11:48
par Iste
Non, car send se superpose a a votre Alt Gr...

Code : Tout sélectionner

HotKeySet("@", "at")

While 1
    Sleep(1000)
WEnd

Func at()
    Send(Chr(40))
EndFunc
 

Re: [..] Fonction hotkeyset()

Posté : lun. 10 janv. 2011 12:00
par quelqun
ça bug aussi :cry:
en executant juste:

Code : Tout sélectionner

send(chr(40))
ça envoie une parenthése: "("