Wie kann ich mit Autohotkey auf einen vorhandenen Google Chrome-Tab und nicht auf ein "Container" -Fenster fokussieren?
Einzelheiten
Google Chrome scheint jedes Fenster mit einem Containerfenster-Handle darzustellen, das eine oder mehrere Registerkarten enthält. Die Registerkarten (mindestens die aktuelle) haben ein eigenes Fensterhandle. Die Tab-Fenster-Handles haben Fenstertitel (die derzeit alle auf "- Google Chrome" enden), während das Container-Fenster-Handle dies nicht tut. Der folgende Autohotkey-Code funktioniert nicht wie für Google Chrome vorgesehen:
^+i::
if WinExist("ahk_class Chrome_WidgetWin_0")
WinActivate
else
Run "C:\Users\vleeshue\AppData\Local\Google\Chrome\Application\chrome.exe"
return
Diese Bindung konzentriert sich auf ein Google Chrome-Fenster, sofern es vorhanden ist, oder führt Google Chrome aus. Es wird jedoch häufig auf das Containerfenster abzielen (in Window Spy ist der Fenstertitel leer). Durch Aktivieren des Containerfensters wird die Verwendung von Google Chrome-Tastaturkürzeln verboten. Die Tastenkombinationen, auf die nicht zugegriffen werden kann, enthalten alle wichtigen Tastenkombinationen für den Zugriff auf das Omnibar. Da ich noch keine Möglichkeit gefunden habe, das Registerkartenfenster anstelle des Containerfensters durchgängig zu aktivieren, kann ich dieses Problem umgehen, indem ich die Maus verwende. Ich würde es jedoch vorziehen, dies nach Möglichkeit zu vermeiden.
Windows Spy Screenshots
Hintergrund
Aktuelle Google Chrome-Version: 5.0.317.2 dev
Eine gebräuchliche Autohotkey-Bindung, die ich verwende, ist eine Tastenkombination, um eine bestimmte Anwendung zu fokussieren, wenn sie bereits ausgeführt wird, oder um die Anwendung auszuführen, wenn sie nicht ausgeführt wird.
Zum Beispiel verwende ich dies für foobar2000
^+m::
If WinExist("foobar2000")
WinActivate
else
Run "C:\Program Files (x86)\foobar2000\foobar2000.exe"
return
quelle
Problemumgehung mit Alt + Tab:
Passen Sie die Argumente nach Bedarf an. SetKeyDelay wird verwendet, weil das Senden zu schnell nicht funktioniert.
quelle
Möglicherweise möchten Sie eine Chrome-Erweiterung anstelle von AutoHotkey verwenden. Erweiterungen können auf alle geöffneten Registerkarten zugreifen, einschließlich der URL und der Möglichkeit, den Tabulatorfokus zu ändern. Andernfalls müssten Sie wahrscheinlich die Eingabehilfen in Chrome verwenden, um das aktive Fenster abzufragen. Ich glaube, so verfolgen Programme wie RescueTime die aktive URL. Wenn Sie beispielsweise den Accessible Event Watcher (AccEvent) aus dem Windows 7 SDK verwenden, werden beim Wechseln der Registerkarten in Chrome die folgenden Ereignisse angezeigt:
quelle
Wenn Sie einen Chrome-Tab suchen möchten, können Sie diesen verwenden
da in chrome alles ein prozess ist, sind deine tabs auch prozesse.
quelle
Window Spy gibt den Registerkartentitel im Feld "Sichtbarer Fenstertext" zurück.
Sie können die Registerkarten in einer Schleife durchlaufen, bis Sie den gewünschten Text gefunden haben. Senden Sie die Tasten CTRL+, um von Tab zu Tab zu wechseln TAB. Das Problem wäre, irgendwann anzuhalten, aber wenn Sie wissen, dass Sie nicht mehr als X Tabs verwenden, können Sie einen Zähler in die Schleife einfügen, um irgendwann abzubrechen, wenn der gewünschte Tab nicht gefunden wird.
quelle
Es scheint einen Fehler mit der WinActivate-Funktion in AutoHotkey zu geben. ( http://productivegeek.com/forums/topic/autohotkey-problem-restoring-minimized-window-and-giving-keyboard-focus )
Verwenden Sie also anstelle der WinActivate-Zeile
quelle
quelle
Prüfen Sie, ob dies hilfreich ist oder Ihnen weitere Ideen liefert. Ich verwende keine der oben genannten.
quelle
Diese AHK-Funktion aktiviert einen Google Chrome-Tab, falls vorhanden, und gibt true zurück. Andernfalls wird false zurückgegeben.
quelle