Autohotkey Fallback se o programa não existir

Autohotkey Fallback se o programa não existir

Estou tentando ter meu cygwinehprograma aberto quando eu pressiono Windows Key + R (isso poderia facilmente se aplicar a qualquer outra combinação de teclas), mas percebo que todos os meus computadores podem não ter o cygwin instalado. Caso meu computador não possua o cygwin, gostaria apenas de abrir o prompt de comando do Windows.

Como defino condicionalmente o #rmapeamento (Win + R) para conseguir isso?

Responder1

Isso não foi testado, mas 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 shcomando cygwin. Usando oWinWaitfunção, ele verifica se foi criado (usando um título de janela "sh", que pode precisar ser alterado). Caso contrário, ele volta para run cmd.

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

#r::
if FileExist("c:\cygwin\sh.exe")
   Run sh
else
   Run cmd
return

Responder2

Resposta de @yhw42me ajudou a começar, mas encontrei uma solução mais limpa:

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

#r::Run %WinR%

Isso usa o WHEREcomando do Windows eVariáveis ​​​​AutoHotkey.

informação relacionada