[R] Capture de raccourci clavier et application active

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
AlbatorV
Niveau 2
Niveau 2
Messages : 23
Enregistré le : mer. 05 nov. 2008 11:38
Status : Hors ligne

[R] Capture de raccourci clavier et application active

#1

Message par AlbatorV »

Bonjour à tous,

J'ai besoin d'une petite aide pour un script.
J'ai créer un script que je lance au demarrage du pc.
Ce script permet de capter un raccourci clavier pour envoyer un autre raccourci.
Ce que je voudrais c'est le raccourci soit capté en fonction du logiciel actif.
Le probleme est que mon raccourci est capté tout le temps...
Je voudrais que ce script fonctionne uniquement quand Maxthon est actif, sinon rien...

Voici mon code...

Code : Tout sélectionner

Opt("TrayMenuMode", 3)
Opt("TrayAutoPause",0)
Opt("WinTitleMatchMode", 1)

Local $titre  = TrayCreateItem("Raccourcis WC-PL")
Local $separateur = TrayCreateItem("")
Local $exit = TrayCreateItem("Quitter")
TraySetToolTip("Raccourcis WC-PL - TM")

While 1
    Local $msg = TrayGetMsg()
    Select
        Case $msg = 0
        If WinActive("[CLASS:Maxthon2_Frame]","") Then
            HotKeySet("²", "Dupliquer")
        endif
  Case $msg = $exit
            ExitLoop
 EndSelect
WEnd

Func Dupliquer()
  Send("^n")
EndFunc
 
Merci d'avance
Modifié en dernier par AlbatorV le lun. 25 oct. 2010 14:01, modifié 1 fois.
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Capture de raccourci clavier et application active

#2

Message par Yogui »

j'utiliserai un winactive

par exemple :

Code : Tout sélectionner

HotKeySet("²", "_execution")


Func _execution()
    If WinActive("[CLASS:Notepad]") Then
        Run('calc.exe')
    EndIf
EndFunc   ;==>_execution

While 1
    Sleep(200)
WEnd
Avatar du membre
AlbatorV
Niveau 2
Niveau 2
Messages : 23
Enregistré le : mer. 05 nov. 2008 11:38
Status : Hors ligne

Re: [..] Capture de raccourci clavier et application active

#3

Message par AlbatorV »

Je viens de tester ton bout de script et ca ne fonctionne pas. Si notepad est active, ok la calculette se lance mais tu es dans une autre application, la touche "²" ne fonctionne plus.

J'utilise déjà winactive dans mon script mais ca ne fonctionne pas non plus. je l'ai peut être mal placé?
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] Capture de raccourci clavier et application active

#4

Message par fred39 »

AlbatorV a écrit :Je viens de tester ton bout de script et ca ne fonctionne pas. Si notepad est active, ok la calculette se lance mais tu es dans une autre application, la touche "²" ne fonctionne plus.

J'utilise déjà winactive dans mon script mais ca ne fonctionne pas non plus. je l'ai peut être mal placé?
Bonjour,
C'est normal, si tu es dans une autre application la fenêtre notepad n'est pas "active".
Tu peux aussi utiliser
if ProcessExists

Bonne journée
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Capture de raccourci clavier et application active

#5

Message par SrBelial »

AlbatorV a écrit :Je viens de tester ton bout de script et ca ne fonctionne pas. Si notepad est active, ok la calculette se lance mais tu es dans une autre application, la touche "²" ne fonctionne plus.

J'utilise déjà winactive dans mon script mais ca ne fonctionne pas non plus. je l'ai peut être mal placé?
Une solution :

Alors dans ce cas là il faut rajouter une clause Else, qui permettra de renvoyer "²" à l'application en cours :

Code : Tout sélectionner

HotKeySet("²", "_execution")


Func _execution()
    If WinActive("[CLASS:Notepad]") Then
        Run('calc.exe')
    Else
        Send("²")
    EndIf
EndFunc   ;==>_execution

While 1
    Sleep(200)
WEnd
En espérant vous avoir aidé.
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Avatar du membre
AlbatorV
Niveau 2
Niveau 2
Messages : 23
Enregistré le : mer. 05 nov. 2008 11:38
Status : Hors ligne

Re: [..] Capture de raccourci clavier et application active

#6

Message par AlbatorV »

Merci pour cette lumière, c'est ce que j'avais fait sur mon code. le probleme avec ca, c'est que ce bout de code entre dans une boucle sans fin. Si on appuie sur ² et que l'application voulue n'est pas active, le script envoi un ², et comme l'application active n'est toujours pas celle voulue, il renvoi un ²... etc

La parade que j'ai trouvé est d'envoyer un code ASCII, si on appui sur ² et que l'application active n'est pas celle voulue : hotkey("{ASC 0178}").
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Capture de raccourci clavier et application active

#7

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre