首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用vbs按标题激活窗口

问使用vbs按标题激活窗口
EN

Stack Overflow用户
提问于 2019-12-07 09:27:14
回答 1查看 498关注 0票数 0

我使用的脚本是:

  1. 推出雷鸟
  2. 创建新消息
  3. 最小化消息框
  4. 将路径复制到所选文件夹

如何激活最小化的雷鸟消息框,知道其标题吗?

以下代码不起作用:

​

代码语言:javascript
复制
Set WshShell = CreateObject("WScript.Shell")  
Set WshExec = WshShell.Exec("""C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.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  

​

EN

回答 1

Stack Overflow用户

发布于 2019-12-07 17:35:59

VBS的AppActivate封装了API的SetForegroundWindow。您的程序必须符合下列规则之一才能设置活动窗口。注意,标准的锁定时间是2秒--这是大多数人被捕获的地方。注VBScript没有用户界面,所以不能成为前台窗口-在程序启动后,您有2秒的时间设置窗口。

来自https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setforegroundwindow

SetForegroundWindow

备注

前台窗口是Z顺序顶部的窗口。它是用户正在使用的窗口。在先发制人的多任务处理环境中,通常应该让用户控制哪个窗口是前台窗口。

Windows 98/Me,Windows 2000/XP:系统限制哪些进程可以设置前台窗口。只有当下列条件之一为真时,进程才能设置前台窗口:

  • 进程是前台进程。
  • 进程由前台进程启动。
  • 进程收到了最后一个输入事件。
  • 没有前台进程。
  • 前台进程正在调试。
  • 前景未被锁定(参见LockSetForegroundWindow)。前台锁定超时已过期(请参阅SystemParametersInfo).
  • Windows 2000/XP中的SPI_GETFOREGROUNDLOCKTIMEOUT :没有菜单处于活动状态)。

使用此更改后,当用户使用另一个窗口时,应用程序无法将窗口强制到前台。相反,SetForegroundWindow将激活窗口(参见SetActiveWindow),并调用FlashWindowEx函数通知用户。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59224620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档