Jak mogę użyć Autohotkey, aby skupić się na istniejącej karcie Google Chrome, a nie oknie „kontenera”?
Detale
Wydaje się, że Google Chrome reprezentuje każde okno za pomocą uchwytu okna kontenera, który zawiera jedną lub więcej kart. Zakładki (przynajmniej bieżąca) mają własny uchwyt okna. Uchwyty okien kart mają tytuły okien (które obecnie kończą się na „- Google Chrome”), natomiast sam uchwyt okna kontenera nie. Poniższy kod auto-klucza nie działa zgodnie z przeznaczeniem dla Google Chrome:
^+i::
if WinExist("ahk_class Chrome_WidgetWin_0")
WinActivate
else
Run "C:\Users\vleeshue\AppData\Local\Google\Chrome\Application\chrome.exe"
return
Wiązanie skupi się na oknie przeglądarki Google Chrome, jeśli istnieje lub będzie działać w przeglądarce Google Chrome. Jednak często będzie celować w okno kontenera (w Window Spy tytuł okna jest pusty). Aktywacja okna kontenera uniemożliwia korzystanie ze skrótów klawiaturowych Google Chrome. Niedostępne skróty klawiaturowe obejmują wszystkie ważne klawisze Ctrl + L, aby uzyskać dostęp do omnibara. Ponieważ nie znalazłem jeszcze sposobu, aby konsekwentnie aktywować okno kart zamiast okna kontenera, moim obejściem jest używanie myszy, ale wolałbym tego unikać, jeśli to możliwe.
Zrzuty ekranu szpiega okna
tło
Aktualna wersja Google Chrome: 5.0.317.2 dev
Typowym powiązaniem autohotkey, którego używam, jest skrót klawiaturowy, aby skoncentrować konkretną aplikację, jeśli jest już uruchomiona, lub uruchomić aplikację, jeśli nie jest uruchomiona.
Na przykład używam tego dla foobar2000
^+m::
If WinExist("foobar2000")
WinActivate
else
Run "C:\Program Files (x86)\foobar2000\foobar2000.exe"
return
źródło
Obejście problemu za pomocą Alt + Tab:
Dostosuj argumenty zgodnie z potrzebami. Wykorzystano SetKeyDelay, ponieważ zbyt szybkie wysyłanie nie działa.
źródło
Możesz skorzystać z rozszerzenia Chrome zamiast AutoHotkey. Rozszerzenia mogą uzyskać dostęp do wszystkich otwartych kart, w tym adresu URL i możliwości zmiany fokusu na karcie. W przeciwnym razie prawdopodobnie będziesz musiał skorzystać z funkcji ułatwień dostępu w Chrome, aby wysłać zapytanie do aktywnego okna. Uważam, że w ten sposób programy takie jak RescueTime śledzą aktywny adres URL. Na przykład użycie Kontrolera zdarzeń dostępnych (AccEvent) z zestawu SDK systemu Windows 7 pokazuje następujące zdarzenia podczas zmiany kart w Chrome:
źródło
jeśli chcesz znaleźć zakładkę chrome, możesz tego użyć
ponieważ w chrome wszystko jest procesem, twoje karty są również procesami.
źródło
Window Spy zwraca tytuł karty w polu „Widoczny tekst okna”.
Możesz zapętlać karty, aż znajdziesz żądany tekst. Aby przełączyć się z karty na kartę, wyślij klawisze CTRL+ TAB. Problemem byłoby zatrzymanie się w pewnym momencie, ale jeśli wiesz, że nie używasz więcej niż X zakładek, możesz dołączyć licznik do pętli, aby przerwać w pewnym momencie, jeśli żądana karta nie zostanie znaleziona.
źródło
Wygląda na to, że występuje błąd w funkcji WinActivate w AutoHotkey. ( http://productivegeek.com/forums/topic/autohotkey-problem-restoring-minimized-window-and-giving-keyboard-focus )
Zamiast linii WinActivate użyj
źródło
źródło
Sprawdź, czy to pomaga lub daje ci więcej pomysłów. Nie używam żadnego z powyższych.
źródło
Ta funkcja AHK aktywuje kartę Google Chrome, jeśli istnieje i zwraca wartość true. W przeciwnym razie zwróci false.
źródło