Autohotkeys ne reconnaît pas Google Chrome Windows. Que puis-je faire?

4

Je crée un raccourci clavier dans autohotkeys pour activer Google Chrome ou pour passer d'une fenêtre à l'autre.

La touche de raccourci est Gagner + H (h signifie http).

Si l'utilisateur appuie sur Gagner + Décalage + H il ouvre une nouvelle fenêtre chromée

Si l'utilisateur appuie sur Gagner + H deux fois, il se déplace entre toutes les fenêtres chromées:

Mettre à jour: Voir le script complet en bas. Merci tout le monde:

Le problème est qu'AutoHotKeys ne peut pas trouver la classe de chrome, elle est donc toujours ouverte dans une nouvelle fenêtre:

Cette fonction renvoie toujours false: If WinExist ahk_class Chrome_WidgetWin_1

S'il vous plaît donnez votre avis.

le fichier de script:

#h::
SetTitleMatchMode, 2
If WinExist ahk_class Chrome_WidgetWin_1
{
ifWinActive
WinActivatebottom ,Chrome_WidgetWin_1
else
WinActivate 
return
}
run chrome.exe

J'ai trouvé le bug.

Il y a un bogue avec la fonction ifWinExist dans cette version d'AutoHotkeys et Google Chrome. L'utilisateur peut utiliser;

WinActivate ahk_class Chrome_WidgetWin_1

mais ne peut pas utiliser:

If WinExist ahk_class Chrome_WidgetWin_1

C'est toujours faux!

J'espère que cette question répondra à quelqu'un (je ne peux pas écrire de réponse, car je n'ai qu'un point de réputation)

Mettre à jour: Ceci est ahk code source, pour Gagner + n Bloc-notes ouvert ou commutation entre les blocs-notes ouverts.

+ Décalage + n Ouvrez le nouveau bloc-notes.

Gagner + c Ouvrez cmd.exe ou basculez entre les fenêtres de la console.

Gagner + Décalage + c Ouvrir une nouvelle console.

Gagner + h Ouvrez Google Chrome ou passez d’une fenêtre à l’autre. + Décalage + h Ouvrir un nouveau navigateur.

SetTitleMatchMode, 2


;********command line
#c::
IfWinExist ,cmd.exe
{
ifWinActive
WinActivatebottom ,cmd.exe
else
WinActivate
return
}
#+c::
run cmd.exe
return

;******************Chrome
#h::
IfWinExist ,Chrome
    {
    ifWinActive
        {
        WinActivatebottom ,Chrome
    }
    else
    {
        WinActivate
    }
    return
}

#+h::
run "chrome"
return 
;**************Notepad
#n::
IfWinExist ,Notepad
    {
    ifWinActive
        {
        WinActivatebottom ,Notepad
    }
    else
    {
        WinActivate
    }
    return
}

#+n::
run "notepad"
return
Shluch
la source
Quel est le problème exactement? S'il vous plaît paraphraser.
Cette fonction renvoie toujours false: IfWinExist ahk_class Chrome_WidgetWin_1
Shluch

Réponses:

2

J'utilise uniquement le nom (car Google a déjà changé le nom de la classe). Voici un exemple dans AHK_L que j'utilise.

SetTitleMatchMode, 2

#ifWinActive, Chrome
    NumpadIns::Send, {Click}
    NumpadRight::Send, ^{PgDn} ; Right arrow = activate next Tab
    NumpadLeft::Send, ^{PgUp} ; Left arrow = activate previous tab
#ifWinActive
Robert Ilbrink
la source
1

Essayez Chrome_WidgetWin_0.
Si cela ne fonctionne pas, découvrez ce que c'est que la vraie classe en utilisant WinGet

WinGet,activeId,ID,A  <- gives active window ahk_id
WinGetClass, activeClass, ahk_id %activeId%


vous pouvez aussi essayer de chercher par nom

SetTitleMatchMode, 2
WinGetTitle, OutputVar , Chrome <- type the name of the chrome window ( probably contains chrome)


Vous pouvez toujours vous référer à cette question si tout le reste échoue.

Community
la source