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

[其他] 使用mshta弹窗如何获取弹窗的返回值为确定还是取消?

  1. mshta vbscript:msgbox("提示内容1",1,"提示窗口1")(window.close)
复制代码
如题,如何获取弹窗的返回值是确定还是取消,以进行下一步操作??直接使用set貌似接收不到
  1. @echo off
  2. for /f %%i in ('mshta vbscript:msgbox("提示内容1",1,"提示窗口1")(window.close)') do (
  3.     set "bbb=%%i"
  4. )
  5. echo %bbb%
  6. pause
复制代码
使用for直接给我关闭了。。也取不到返回值?

解决了,还是通过for解决的,不过是参考了别人的代码
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. ::CODER BY 老刘 POWERD BY iBAT
  4. Set Vbscript=Msgbox("Hello,world!",1)
  5. for /f "Delims=" %%a in (
  6. 'mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(%Vbscript:"=""%)"^)(Close^)'
  7. ) do Set "MsHtaReturnValue=%%a"
  8. echo %MsHtaReturnValue%
  9. Set ReturnValue1=确定
  10. Set ReturnValue2=取消或关闭窗口
  11. Echo 你点击了!ReturnValue%MsHtaReturnValue%!。
  12. pause
复制代码
转载自http://www.mamicode.com/info-detail-2175913.html
不过其中的一些代码不太了解。。比如.Write(%Vbscript:"=""%)。。这个貌似是。。。没看懂,只能大概明白,我去看看置顶的那个参考下

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set ms=mshta vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(msgbox("是否立即关闭?",4132,"提示"))(window.close)
  4. for /f %%i in ('!ms!') do if %%i EQU 6 exit
  5. pause
复制代码
参考资料:

TOP

返回列表