Board logo

标题: [问题求助] 求助VBS弹窗Msgbox和popup显示问题。 [打印本页]

作者: licunwei    时间: 2024-2-9 22:26     标题: 求助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
复制代码

作者: czjt1234    时间: 2024-2-10 07:12

测试方法二可以键盘执行的
按 Y 或 N 键
作者: licunwei    时间: 2024-2-10 09:15

回复 2# czjt1234


    前端没运行其他程序的情况下是可以的,运行了其他程序不用鼠标去点击下就不能用键盘操作。
作者: czjt1234    时间: 2024-2-10 22:21

本帖最后由 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
复制代码

作者: czjt1234    时间: 2024-2-10 22:58

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2