Autobackkey Fallback se o programa não existir

0

Estou tentando abrir meu programa sh do cygwin quando clico no Windows Key + R (isso pode ser aplicado com facilidade a qualquer outra combinação de teclas), mas percebo que todos os meus computadores pode não ter o cygwin instalado. No caso em que meu computador não possui cygwin, gostaria de apenas abrir o Prompt de Comando do Windows.

Como defino condicionalmente o mapeamento #r (Win + R) para obter isso?

    
por palswim 11.10.2010 / 20:00

2 respostas

1

@ resposta do yhw42 me fez começar, mas Eu encontrei uma solução mais limpa:

WinR := "sh"
RunWait, where sh
if ErrorLevel
    WinR := "cmd"

#r::Run %WinR%

Isso usa o comando WHERE do Windows e variáveis AutoHotkey .

    
por 12.10.2010 / 19:45
3

Isso não foi testado, mas você deve começar:

#r::
Run sh
WinWait,sh,,1
if ErrorLevel
{
   ;it timed out waiting for sh (1 sec)
   Run cmd
}
return

Ele tenta executar o comando sh cygwin. Usando a função WinWait , ele verifica se foi criado (usando um título de janela de "sh" , isso pode precisar de ser mudado). Se não, ele volta para run cmd .

Outra opção, se você sempre souber o caminho absoluto de sh.exe , poderá usar o FileExist método.

#r::
if FileExist("c:\cygwin\sh.exe")
   Run sh
else
   Run cmd
return
    
por 11.10.2010 / 20:13

Tags