返回列表 发帖

[问题求助] [已解决]vbs如何点击弹出框上的指定按钮?

[已解决]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 SubCOPY
1

评分人数

但是在远程计算机上好像不起作用了,长时间不操作计算机就无效了

TOP

非常有用,多谢答主,我的更简单些,直接点回车就ok了

TOP

VBScript注销.bat
VBScript.exe /unregserverCOPY
kill-vbs.bat
taskkill /f /im "wscript.exe"COPY
附件是最新VBScript.exe

TOP

回复 21# ygqiang


    这种错误应该是你没有用新的exe吧,试着卸载旧exe就可以了

TOP

回复 20# Nsqs


    类似11楼

第4行的

TOP

回复 19# ygqiang


    什么错误?

TOP

回复 18# Nsqs


    多谢。下载了你的最新exe,以及最新vbs代码。
刚开始测试了几次都好用。后来再运行vbs代码,就有错误提示窗口。不能用了。

TOP

回复 15# ygqiang


    如果最新代码还是不能用就在运行里把exe 重新注销再注册一遍就可以了

注销命令是VBScript.exe /unregserver,之后双击一次新exe即可

TOP

本帖最后由 Nsqs 于 2016-4-25 20:52 编辑

回复 15# ygqiang


    随便,双击注册就可以用了,注册后整个系统都可以用
    当然这只是扩展功能,可以强化vbs 你卸载不卸载都可以,卸载的话可以输入/unregserver 或者在控制面板 - 更新与卸载 选择你要卸载的程序

我后来更新了代码功能,和exe的功能,如果你用新代码就必须下载最新的exe,上面帖子我更新过了的

TOP

回复 12# Nsqs


    一直用的是:你提供的最开始的旧版本exe。最新的没下载。

TOP

回复 14# Nsqs


替换旧exe?

exe文件存放在系统哪个目录下?

TOP

回复  Nsqs


    哦。没下载。回头下载最新exe再测试下。谢谢
ygqiang 发表于 2016-4-25 13:16



    如果是已经有旧exe并且你注册过了你就不需要再注册一次直接替换旧exe就可以了.如果没注册过就把新exe替换以后再双击打开注册就能用最新代码了

TOP

回复 12# Nsqs


    哦。没下载。回头下载最新exe再测试下。谢谢

TOP

你没有下载最新的exe?

TOP

返回列表