Como posso usar a Autohotkey para focar em uma guia existente do Google Chrome, não em uma janela de "contêiner"?
Detalhes
O Google Chrome parece representar cada janela com um identificador de janela de contêiner, que contém uma ou mais guias. As guias (pelo menos a atual) têm seu próprio identificador de janela. Os identificadores da janela da guia têm títulos de janela (que atualmente terminam em "- Google Chrome"), enquanto o identificador da janela do contêiner em si não. O código de autohotkey a seguir não funciona conforme o esperado para o Google Chrome:
^+i::
if WinExist("ahk_class Chrome_WidgetWin_0")
WinActivate
else
Run "C:\Users\vleeshue\AppData\Local\Google\Chrome\Application\chrome.exe"
return
Essa ligação se concentrará em uma janela do Google Chrome, se ela existir ou executar o Google Chrome. No entanto, muitas vezes terá como alvo a janela do contêiner (no Window Spy, o título da janela está em branco). Ativar a janela do contêiner não permite o uso de atalhos de teclado do Google Chrome. Os atalhos de teclado inacessíveis incluem o ctrl + l mais importante para acessar o omnibar. Como ainda não encontrei uma maneira de ativar consistentemente a janela da guia em vez da janela do contêiner, minha solução alternativa é usar o mouse, mas prefiro evitar isso, se possível.
Espião janela Screenshots
fundo
Versão atual do Google Chrome: 5.0.317.2 dev
Uma ligação comum de autohotkey que eu uso é um atalho de teclado para focar um aplicativo específico se ele já estiver em execução ou para executar o aplicativo se não estiver em execução.
Por exemplo, eu uso isso para foobar2000
^+m::
If WinExist("foobar2000")
WinActivate
else
Run "C:\Program Files (x86)\foobar2000\foobar2000.exe"
return
fonte
Solução alternativa usando Alt + Tab:
Ajuste os argumentos conforme necessário. SetKeyDelay usado porque o envio rápido demais não funciona.
fonte
Você pode querer usar uma extensão do Chrome em vez do AutoHotkey. As extensões podem ter acesso a todas as guias abertas, incluindo o URL e a capacidade de alterar o foco da guia. Caso contrário, você provavelmente precisará usar os recursos de acessibilidade no Chrome para consultar a janela ativa. Acredito que é assim que programas como o RescueTime rastreiam qual é o URL ativo. Por exemplo, o uso do Observador de eventos acessível (AccEvent) no Windows 7 SDK mostra os seguintes eventos ao alterar as guias no Chrome:
fonte
se você quiser encontrar uma guia do chrome, você pode usar este
como no chrome tudo é um processo, suas guias também são processos.
fonte
O Window Spy retorna o título da guia no campo "Visible Window Text".
Você pode fazer um loop nas guias até encontrar o texto desejado. Para alternar de tabulação para tab, envie as teclas CTRL+ TAB. O problema seria parar em algum momento, mas se você souber que não usa mais que X guias no máximo, poderá incluir um contador no loop para interromper em algum momento se a guia desejada não for encontrada.
fonte
Parece haver um erro com a função WinActivate no AutoHotkey. ( http://productivegeek.com/forums/topic/autohotkey-problem-restoring-minimized-window-and-giving-keyboard-focus )
Portanto, em vez da linha WinActivate, use
fonte
fonte
Veja se isso ajuda ou fornece mais idéias. Não estou usando nenhuma das opções acima.
fonte
Esta função AHK ativará uma guia do Google Chrome, se existir, e retornará true. Caso contrário, ele retornará falso.
fonte