为什么这段代码会随机失败?它将持续工作,然后在某个看似随机的时间冻结(窗口最大化或最小化),要求我选择“任何窗口”才能使其再次开始工作。
它应该通过 lCtrl+波浪号切换最大化/最小化网络浏览器(假设它是打开的)。我会随机尝试通过 lctrl+1 切换记事本时遇到同样的问题。
<^`::{
if not WinActive("ahk_exe chrome.exe"){
WinActivate("ahk_exe chrome.exe")
}
else {
WinMinimize("ahk_exe chrome.exe")
}
}
不要链接 v1 代码。
我尝试明确地写出来,但没有区别,即“如果不是 winactive then else if winactive then else”
WinActive()
顾名思义,检查窗口是否处于活动状态,这通常与检查窗口或进程是否存在的 WinExist()
混合在一起。另一件事是这不是切换脚本。它仅检查获胜是否有效。所以这是解决方案:
#Requires AutoHotkey v2.0
#SingleInstance Force
CHROME_HANDLE := "ahk_exe chrome.exe"
Toggle := WinActive(CHROME_HANDLE)
<^`::{
if(not WinExist(CHROME_HANDLE)){ ;Check if chrome is still alive
return
}
global Toggle
if(!Toggle){
WinRestore(CHROME_HANDLE) ;Restores the last size
Toggle := true
}else{
WinMinimize(CHROME_HANDLE)
Toggle := false
}
}