Page 1 sur 1

[R] Capture de raccourci clavier et application active

Posté : mar. 19 oct. 2010 11:17
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

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

Posté : mar. 19 oct. 2010 11:26
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

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

Posté : mer. 20 oct. 2010 09:52
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é?

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

Posté : mer. 20 oct. 2010 11:55
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

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

Posté : mer. 20 oct. 2010 17:43
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é.

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

Posté : ven. 22 oct. 2010 10:25
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}").

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

Posté : ven. 22 oct. 2010 20:39
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.