AutoHotkey + Windows 8: executando aplicativos da área de trabalho

1

Eu tenho um script simples do AHK:

#n::Run notepad.exe

Se eu estou olhando para a área de trabalho e clico em Win + N , vejo o Bloco de Notas. O problema é, se eu estou olhando para a tela inicial e teco Win + N , não recebo nada. O bloco de notas é aberto na área de trabalho, mas não me leva para a área de trabalho para vê-lo.

Esse comportamento é normal? Existe alguma maneira extravagante de me levar para a área de trabalho se eu ainda não estiver lá? Talvez ver se a janela ativa é ImmersiveLauncher , pressione a tecla Iniciar? AutoHotkey pode fazer isso, certo?

Editar 1 : Eu reduzi a lógica, mas percebi rapidamente que a tecla Iniciar nem sempre leva você para a área de trabalho. A partir de um aplicativo, ele é direcionado para a tela inicial e, na tela inicial, leva você até o último aplicativo usado.

Win8Fix()
{
    WinGetClass, class,  A
    if class = ImmersiveLauncher
        Send, {LWin down}{LWin up}
}

#n::
Win8Fix()
Run notepad.exe

Em vez de Send, {LWin down}{LWin up} , eu tentei ser criativo e pressione Win + B que se concentra na bandeja do sistema, mas não consegui fazer isso funcionar no AHK :

if class = ImmersiveLauncher
    Send, {LWin down}{b down}{LWin up}

Funciona no modo de área de trabalho, mas não faz nada no Metro.

    
por Langdon 23.08.2012 / 16:00

2 respostas

0

Isso parece funcionar, foi obtido nos fóruns do AHK -

Win8Fix(ByRef pid)
{
    WinWait ahk_pid %pid%,,5

    if !ErrorLevel ; Didn't time out.
    {
        WinActivate
    }
}

#n::
Run notepad.exe,,,pid
Win8Fix(pid)
return

Não funciona muito bem para executar URLs como #g::Run www.google.com,,,pid , mas você ainda pode segmentar o executável de um navegador e passar www.google.com como argumento.

    
por 28.08.2012 / 13:45
3
#n::
{
    Run notepad.exe
        WinActivate, Program Manager
}
    
por 16.12.2012 / 08:25