如果程序不存在,则 Autohotkey 回退

如果程序不存在,则 Autohotkey 回退

我正在尝试让我的 cygwin当我按下 Windows 键 + 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

它尝试运行shcygwin 命令。使用等待函数,它会检查它是否已创建(使用窗口标题“sh”,可能需要更改)。如果没有,它会返回到run cmd

另一种选择是,如果您始终知道的绝对路径sh.exe,则可以使用文件存在方法。

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

答案2

@yhw42 的回答确实帮助了我,但我找到了一个更清晰的解决方案:

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

#r::Run %WinR%

这使用 WindowsWHERE命令和AutoHotkey 变量

相关内容