启动程序时 AHK 窗口激活不起作用

启动程序时 AHK 窗口激活不起作用

我目前使用以下代码在按下 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%
}

相关内容