我正在使用的脚本:
- 推出雷鸟
- 创建新邮件
- 最小化消息框
- 将路径复制到所选文件夹
如何激活最小化的雷鸟消息框,知道它的标题?
下面的代码不起作用:
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("""C:Program Files (x86)Mozilla Thunderbirdthunderbird.exe""")
WScript.Sleep 2000
WshShell.SendKeys("^n")
WScript.Sleep 500
PID = WshShell.AppActivate(WshExec.ProcessID)
WshShell.Run("notepad")
If PID Then
WshShell.SendKeys("^k")
Else
MsgBox "Nothing!"
End If
VBS的AppActivate
包装了API的SetForegroundWindow
。程序必须符合以下规则之一才能设置活动窗口。请注意,标准锁定时间为 2 秒 - 这是大多数人被抓住的地方。注意 VBScript 没有用户界面,因此不能作为前台窗口 - 程序启动后有 2 秒钟的时间设置窗口。
从 https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setforegroundwindow
设置前景窗口
言论
前景窗口是位于 Z 顺序顶部的窗口。是的 用户正在使用的窗口。在抢占式多任务处理中 环境,通常应该让用户控制哪个窗口是 前景窗口。
Windows98/Me、Windows 2000/XP:系统限制哪些进程 可以设置前景窗口。进程可以设置前台窗口 仅当满足以下条件之一时:
流程是前台流程。
该过程由前台过程启动。
进程收到最后一个输入事件。
没有前台进程。
正在调试前台进程。
前台未锁定(请参见 LockSetForegroundWindow(。
前台锁定超时已过期(请参阅系统参数信息中的SPI_GETFOREGROUNDLOCKTIMEOUT(。
Windows 2000/XP:没有菜单处于活动状态。
通过此更改,应用程序无法强制将窗口强制到 用户使用另一个窗口时的前台。相反 SetForegroundWindow 将激活该窗口(请参阅 SetActiveWindow(和 调用 FlashWindowEx 函数来通知用户。