我目前使用以下代码在按下 Win+C 时启动 SpeedCrunch 程序
#c::
IfWinExist, SpeedCrunch
{
WinActivate
}
IfWinNotExist, SpeedCrunch
{
Run, speedcrunch.exe, C:\Program Files (x86)\SpeedCrunch, UseErrorLevel
WinActivate
}
return
在程序运行时激活窗口效果很好。但是,当程序未运行时,程序会最小化启动,而不是激活,这意味着需要按两次 Win+C 才能启动并聚焦 Speedcrunch,即使我在启动命令中输入了“WinActivate”。为什么不起作用?
答案1
你的测试条件不够精确。
我建议采用以下表述:
#c::
IfWinExist, ahk_exe SpeedCrunch.exe
{
WinActivate
}
IfWinNotExist, ahk_exe SpeedCrunch.exe
{
Run, C:\Program Files (x86)\SpeedCrunch, , UseErrorLevel, process_id
WinWait, ahk_pid %process_id%
WinActivate, ahk_pid %process_id%
}