[已解决]vbs如何实现:点击弹出框/提示框上的指定按钮?
vbs循环监控特定标题的窗口,如果弹出来窗口,就点击窗口上的指定按钮
——————————————————————————————————
更新下:
经过反复测试:
1、某个exe软件运行的时候,有时候会弹出某个特定标题的窗口。
默认是取消框。如果先按1次键盘的左箭头/TAB按键,再按1次键盘的回车/空格键,
都可以达到预期效果(都可以选中确定按钮,然后让窗口关闭)。
2、vbs代码,无论如何修改,都不能实现选中确定按钮、并点击确定让窗口关闭。
每次都只能点击到“取消”按钮。
多谢Nsqs的帮忙。
sendkeys的方法是模拟键盘,如果窗口内的按钮不支持快捷键,sendkeys就不能用了
扩展第三方程序,可以调用里面的方法向系统直接发送消息,
按下窗口里面的按钮。用sendmessage是向系统发送系统指令
系统接收什么就执行什么 非模拟键盘操作。。- Const strWindowTitle = "窗口标题" ' 监控的窗口标题
-
- 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 1000 ' 延时 1 秒
-
- Loop
-
- '激活窗口
- Call WindowActive(strWindowTitle)
- WScript.sleep 1000 ' 延时 1 秒
-
- '(发送 left左箭头)
- wso.SendKeys "{left}"
-
- WScript.sleep 1000 ' 延时 1 秒
- '(发送 回车)
- 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
复制代码
|