[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 求助VBS弹窗Msgbox和popup显示问题。

求助 怎么设置超时30秒未检测到动作,自动执行否按钮,老师些,帮忙解决下,要用键盘鼠标都能操作。
方法一 不能超时执行
  1. Set objShell = CreateObject("WScript.Shell")
  2. Do
  3. intResult = MsgBox("确定是否执行本次升级?" ,vbYesNo+vbQuestion+vbDefaultButton2, "确认")
  4. If intResult = vbYes Then
  5.     '执行命令的代码
  6.     objShell.Run "C:\Windows\System32\cs-SC\一键升级.bat", 1, True
  7.     Exit Do
  8. Else
  9.     '取消执行命令的代码,1分钟延迟
  10.     WScript. sleep(60 * 1000)
  11.     End If
  12. Loop
复制代码
方法二  只能鼠标执行
  1. Set objShell = CreateObject("WScript.Shell")
  2. Do
  3. intAnswer = objShell.Popup("确定是否执行本次升级?", 30 ,  "确定", vbYesNo + vbQuestion+vbDefaultButton2 +4096)
  4. If intAnswer = vbYes Then
  5.     '执行命令的代码
  6.     objShell.Run "C:\Windows\System32\cs-SC\一键升级.bat", 1, True
  7.     Exit Do
  8. Else
  9.     '取消执行命令的代码,60秒延迟
  10.     WScript. sleep(60 * 1000)
  11.     End If
  12. Loop
复制代码

测试方法二可以键盘执行的
按 Y 或 N 键

QQ 20147578

TOP

回复 2# czjt1234


    前端没运行其他程序的情况下是可以的,运行了其他程序不用鼠标去点击下就不能用键盘操作。

TOP

本帖最后由 czjt1234 于 2024-2-10 22:55 编辑

没有焦点怎么能键盘操作呢,换第三方程序也不行啊
能不能 alt + tab 切换vbs对话框到前台

还有你的逻辑没看懂,如果按否后是延时,然后循环再次询问,那么为什么不一直询问呢
如果不用循环反复问,可以这样
  1. WScript.Timeout = 30    '超时的时间,单位:秒
  2. Set oWshShell = CreateObject("WScript.Shell")
  3. i = vbYesNo + vbQuestion + vbDefaultButton2 + vbSystemModal
  4. If MsgBox("确定是否执行本次升级?", i, "确认") = vbYes Then
  5.     oWshShell.Run "C:\Windows\System32\cs-SC\一键升级.bat", 1
  6. End If
复制代码

QQ 20147578

TOP

如果要循环反复问的话,代码就比较啰嗦了

QQ 20147578

TOP

返回列表