标题: [问题求助] [已解决]如何修改下面的vbs代码,实现:循环监控多个窗口标题? [打印本页]
作者: ygqiang 时间: 2015-11-29 22:40 标题: [已解决]如何修改下面的vbs代码,实现:循环监控多个窗口标题?
本帖最后由 ygqiang 于 2015-12-4 10:52 编辑
[已解决]如何修改下面的vbs代码,实现:循环监控多个窗口标题?
比如需要同时监控3个窗口标题。分别是:aaaa、bbbb、cccc
下面的vbs代码,已经测试过了,好用。。- Const strWindowTitle = "aaaa" ' 监控的窗口标题
-
- Do
- Main
- WScript.Sleep 2000
- Loop
-
- Sub Main()
-
- Dim wso, fso
- Set wso = CreateObject("Wscript.Shell")
- Set fso=CreateObject("Scripting.FileSystemObject")
-
- '一直检查窗口,直到指定窗口出现
- Do While wso.AppActivate(strWindowTitle) = False
- WScript.sleep 200 ' 延时 0.2 秒
-
- Loop
-
- '激活窗口
- Call WindowActive(strWindowTitle)
-
- '关闭窗口(发送 回车)
- wso.sendkeys "{enter}"
-
- Set wso = NoThing
-
- End Sub
-
-
-
- '激活窗口
- Sub WindowActive(ByVal strWindowTitle)
- Dim objWord, objTasks
- Set objWord = CreateObject("word.Application")
- Set objTasks = objWord.Tasks
- If objTasks.Exists(strWindowTitle) Then
- objTasks(strWindowTitle).Activate '激活窗口
- objTasks(strWindowTitle).WindowState = 0 '0平常模式、1最大化模式、2最小化模式
- End If
- objWord.Quit
- End Sub
复制代码
作者: ygqiang 时间: 2015-11-29 23:18
好像解决了。。。- Const strWindowTitle = "aaaa|bbbb" ' 监控的窗口标题
-
- Do
- Main
- WScript.Sleep 2000
- Loop
-
- Sub Main()
-
- Dim wso, fso
- Dim bFind, o
-
- Set wso = CreateObject("Wscript.Shell")
- Set fso=CreateObject("Scripting.FileSystemObject")
-
-
-
- Do
- For Each o In Split(strWindowTitle,"|")
- If Trim(o) <> "" Then
- If CreateObject("WScript.Shell").Appactivate(Trim(o)) Then
- bFind = True ' 做标记-已找到
- Exit For
- End If
- End If
- Next
- If bFind = True Then Exit Do '退出循环
- WScript.Sleep 200 '延时0.2 秒
- Loop
-
-
-
-
- '一直检查窗口,直到指定窗口出现
- If bFind Then
-
- '激活窗口
- Call WindowActive(strWindowTitle)
-
- '关闭窗口(发送 Alt + F4)
- wso.SendKeys "(%{F4})"
- '关闭窗口(发送 回车)
- 'wso.sendkeys "{enter}"
-
- Set wso = NoThing
-
- Else
- End If
-
-
-
- End Sub
-
-
-
- '激活窗口
- Sub WindowActive(ByVal strWindowTitle)
- Dim objWord, objTasks
- Set objWord = CreateObject("word.Application")
- Set objTasks = objWord.Tasks
- If objTasks.Exists(strWindowTitle) Then
- objTasks(strWindowTitle).Activate '激活窗口
- objTasks(strWindowTitle).WindowState = 0 '0平常模式、1最大化模式、2最小化模式
- End If
- objWord.Quit
- End Sub
复制代码
作者: 9zhmke 时间: 2015-12-23 11:14
以前试过,貌似VBS的检查和激活窗口不太稳定
作者: ygqiang 时间: 2015-12-23 16:37 标题: 标题
回复 3# 9zhmke
测试过了。vbs循环检测1个窗口标题,很稳定。2个不行,exe软件会崩溃。。
作者: zhangop9 时间: 2021-1-2 18:49
监控多个窗口标题
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |