MsgBox之后的WinMinimize PID

时间:2014-07-13 15:08:27

标签: autohotkey

以下代码打开记事本,然后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

1 个答案:

答案 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

WinWaitWinMinimize命令无法使用进程ID(PID)。在我的代码中,我使用WinTitle和这些命令。

我正在使用IfWinExist命令确保notepad.exe已经启动且仅在使用WinWaitWinMinimize命令之后。

http://ahkscript.org/(当前版本)下载新版AutoHotkey。来自autohotkey.com的AutoHotkey已过时!