Autohotkey MsgBox之后的WinMinimize PID
下面的代码打开记事本,然后打开它。它工作得很好:Autohotkey MsgBox之后的WinMinimize PID,autohotkey,Autohotkey,下面的代码打开记事本,然后打开它。它工作得很好: !^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
!^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.13.01 2013年10月11日。我对v1.0.48.05版和v1.1.15.02版有相同的问题。我试过的所有AHK版本都是32位的
编辑:
!^WinMinimize,ahk_pid 9156甚至不工作。9156是一个有效的PID
根据MCL的建议,我也尝试了以下方法,但没有成功:
!^t::
PID = 11692
hwnd := WinExist("ahk_pid " pid)
WinMinimize, ahk_id %hwnd%
return
使用此代码,它经过测试并正在工作:
!^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命令之后才能启动。对于我来说,您的脚本可以与Win7 SP1 x64 Professional和AHK 32位v1.1.15.00兼容,并且在WinXP SP3兼容模式下运行AHKrights@hippibruder谢谢,我把我的AHK升级到了最新版本,我仍然有同样的问题。是的^WinMinimize,ahk_pid 9156为你工作?在我的计算机上用一些现有的PID替换9156,它不会。首先检索窗口的hwnd怎么样?hwnd:=WinExistahk_pid然后WinMinimize,ahk_id%hwnd%@MCL谢谢,好主意,但不起作用:/