如何VBS脚本实现对指定对话框窗口侦测和选项操作

需要在现有VBS脚本中插入以下VBS功能语句,实现每隔1秒钟检测某个指定对话框窗口是否存在,假设对话框标题为"Test",对话框有三个选项"accept""cancel"... 需要在现有VBS脚本中插入以下VBS功能语句,实现每隔1秒钟检测某个指定对话框窗口是否存在,假设对话框标题为"Test",对话框有三个选项"accept""cancel"和"close",如果检测到对话框存在则根据需要自动点击"accept"或"cancel",然后执行下一条语句,如果对话框不存在则继续保持检测,直到15秒后退出检测并执行下一条语句。注:对话框默认选择"accept"直接回车即可实现,但如果要选择cancel该怎么办?求VBS高手详细解答。 展开
 我来答
百度网友5311d79
2011-07-30 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3197万
展开全部
你如果用QTP(编程语言也是VBS)的话,直接有个WinExist()方法判断窗口是否存在。但VBS中没有这个方法,只能通过AppActivate方法返回的布尔值来判断应用激活是否成功。如果对话框存在,则一定会返回True,表示激活成功。基于这个思路:

On Error Resume Next
count = 0
set WshShell = WScript.CreateObject("WScript.Shell")
Do While count < 15
ret = WshShell.AppActivate("Test")
If ret Then
WshShell.SendKeys “{TAB}” ‘通过TAB键切换到"cancel"按钮
WshShell.SendKeys "{ENTER}" '点击"cancel"
Exit Do
Else
WScript.Sleep 1000
count = count + 1
End If
Loop
fencerking
2011-07-30 · TA获得超过739个赞
知道小有建树答主
回答量:507
采纳率:0%
帮助的人:188万
展开全部
虽然vbs本身没有提供查询窗口的函数,但是可以通过activex实现,就是创建一个wordapplication
只要电脑装了word就行。

Set objWord = CreateObject("Word.Application")
objword.Visible=false
Set colTasks = objWord.Tasks

For Each objTask in colTasks
If objTask.Visible and objtask.name="test" then
ret = WshShell.AppActivate("Test")
If ret Then
WshShell.SendKeys “{TAB}” ‘通过TAB键切换到"cancel"按钮
WshShell.SendKeys "{ENTER}" '点击"cancel"
end if

End If
Next
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式