[R] désactiver / Activer HotKeySet

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 398
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

[R] désactiver / Activer HotKeySet

#1

Message par jl56 »

Bonjour,

Pour 2 de mes scripts j'utilise des Hotkeyset voir code ci-dessous

pour saisir automatiquement par exemple un nom d'utilisateur, un mot de passe etc.
avec la combinaison de touche associé.
ça fonctionne relativement bien, hormis parfois une rémanence de touche appuyée, dans ce cas, je dois appuyer sur les touches shitt et CTRL

Mon problème c'est que comme je l'indiquait au début j'ai 2 scripts qui utilise ces mêmes fonction et j'utilise de plus en plus souvent les 2 script en même temps.
c'est le premier démarré qui a les raccourcis de touche active, si je veux avoir ces raccourcis sur l'autre script je dois quitter les 2 applis et démarrer l'autre en 1er!

Dans l'aide il est bien stipuler que
Si deux scripts AutoIt utilisent les mêmes raccourcis clavier, vous devriez éviter de faire fonctionner ces scripts simultanément, le second script ne peut pas saisir le raccourci clavier

mais la phrase qui suit dit
à moins que le premier script termine ou annule l'enregistrement du raccourci avant la définition du raccourci du deuxième script.
Se qui sous entend que dans l’exécution du script on peut effacer le rarcourcie
Si cette valeur n'est pas spécifiée, le raccourci précédemment créé est effacé.


je sais faire communiquer 2 scripts par l'intermédiaire d'un fichier INI

Ma question comment savoir que la gui est active (au 1er plan ..) ?

Afin de l’enregistrer la gui active dans un paramètre d'un fichier INI pour informer l'autre script d'effacer ses raccourcie puis d'activer les raccourcies sur la gui active ?

Merci de vos suggestions.

Bonne soirée

JL56


HotKeySet("^+u", "crtlaltu") ; ctrl-alt-u
HotKeySet("^+p", "ctrlaltp") ; ctrl-alt-p
HotKeySet("^+t", "crtlaltt") ; ctrl-alt-t
HotKeySet("^+m", "ctrlaltm") ; ctrl-alt-m
HotKeySet("^+o", "ctrlalto"); crtl-alt-o


while 1
   sleep (200)
WEnd


Func crtlaltu()

   Send("user", 1)
   Sleep(100)
   Send("{TAB}")
EndFunc   ;==>crtlaltu
Func ctrlaltp()

   Send("mot de passe", 1)
EndFunc   ;==>ctrlaltp
Func crtlaltt()

   Send("Test", 1)
EndFunc   ;==>crtlaltt

Func ctrlaltm()

   Send("mdp test", 1)
   Sleep(100)
   Send("{ENTER}")

EndFunc   ;==>ctrlaltm

Func ctrlalto()
   BlockInput(1)
   Send("user", 1)
   Sleep(200)
   Send("{TAB}")
   Sleep(200)
   Send("mot de passe o", 1)
   Sleep(200)
   Send("{ENTER}")
   BlockInput(0)

EndFunc   ;==>ctrlalto
Modifié en dernier par jl56 le sam. 07 mai 2022 13:21, modifié 1 fois.
Avatar du membre
mikell
Modérateur
Modérateur
Messages : 6201
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : En ligne

Re: [.] désactiver / Activer HotKeySet

#2

Message par mikell »

A vue de nez , personnellement je conditionnerais les HotkeySet à un WinGetState ou un WinActive dans la boucle While principale de chaque script
Par exemple, si la gui est active => HotKeySet("^+u", "crtlaltu") , sinon => HotKeySet("^+u", "")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 398
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [.] désactiver / Activer HotKeySet

#3

Message par jl56 »

Bonjour à tous,

Merci Mikell c'est ce que je recherchais, je vais tester ça.

Cordialement,

JL56
Répondre