Резервная версия Autohotkey, если программа не существует

Резервная версия Autohotkey, если программа не существует

Я пытаюсь запустить свой Cygwin.шпрограмма открывается, когда я нажимаю Windows Key + R (это может быть применимо к любой другой комбинации клавиш), но я понимаю, что на всех моих компьютерах может быть не установлен cygwin. В случае, если на моем компьютере нет cygwin, я бы хотел просто открыть командную строку Windows.

Как мне условно задать #rсопоставление (Win+R), чтобы добиться этого?

решение1

Это не проверено, но должно помочь вам начать:

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

Он пытается запустить shкоманду cygwin. ИспользуяWinWaitфункция, она проверяет, была ли она создана (используя заголовок окна "sh", который может потребоваться изменить). Если нет, она возвращается к run cmd.

Другой вариант, если вы всегда знаете абсолютный путь sh.exe, вы можете использоватьФайлСуществуетметод.

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

решение2

@yhw42's ответэто помогло мне начать, но я нашел более чистое решение:

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

#r::Run %WinR%

Это использует команду Windows WHEREиПеременные AutoHotkey.

Связанный контент