@ 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 .
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?
@ 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 .
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
Tags autohotkey