以下代码打开记事本,然后minimizes。它工作正常:
!^m::
Run, Notepad.exe,,USEERRORLEVEL MAX, PID
WinWait, ahk_pid %pid%
WinMinimize, ahk_pid %PID%
return
但是,如果我在最小化记事本窗口之前添加MsgBox
来显示PID,那么后者不会被最小化:
!^m::
Run, Notepad.exe,,USEERRORLEVEL MAX, PID
WinWait, ahk_pid %pid%
MsgBox OK %PID%
WinMinimize, ahk_pid %PID%
return
为什么?
睡觉没有帮助:
!^m::
Run, Notepad.exe,,USEERRORLEVEL MAX, PID
WinWait, ahk_pid %pid%
MsgBox OK %PID%
Sleep, 2000 ; 2 seconds
WinMinimize, ahk_pid %PID%
return
我使用Windows 7 SP1 x64 Ultimate和AHK 1。1。1。1。01(2013年10月11日)。我对版本v1.0.48.05和版本v1.1.15.02也有同样的问题。我尝试的所有AHK版本都是32位。
编辑:
!^b::WinMinimize, ahk_pid 9156
甚至不起作用。 (9156是有效的PID)
根据MCL建议,我也尝试了尝试失败:
!^t::
PID = 11692
hwnd := WinExist("ahk_pid " pid)
WinMinimize, ahk_id %hwnd%
return
答案 0 :(得分:0)
使用此代码(经过测试并正在运行):
!^m::
Run, Notepad.exe,,MAX, PID
CheckWin:
IfWinExist, Untitled - Notepad
{
WinWait, Untitled - Notepad
MsgBox OK %PID%
WinMinimize, Untitled - Notepad
}
else
{
Goto, CheckWin
}
return
WinWait
和WinMinimize
命令无法使用进程ID(PID)。在我的代码中,我使用WinTitle和这些命令。
我正在使用IfWinExist
命令确保notepad.exe已经启动且仅在使用WinWait
和WinMinimize
命令之后。
从http://ahkscript.org/(当前版本)下载新版AutoHotkey。来自autohotkey.com的AutoHotkey已过时!