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

Как мне условно установить #r (Win+R) для достижения этого?

2 ответа2

3

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

#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 , вы можете использовать метод FileExist .

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

Ответ @ yhw42 заставил меня начать, но я нашел более чистое решение:

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

#r::Run %WinR%

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .