gpt4 book ai didi

batch-file - 根据按下的按钮路由脚本的路径 mshta.exe vbscript :Execute

转载 作者:行者123 更新时间:2023-12-01 06:06:42 26 4
gpt4 key购买 nike

在批处理文件中,我可以得到以下内容,给我一个带有“确定”按钮的消息框

mshta.exe vbscript:Execute^("msgbox ""Registers NOT submitted""& VbCrLf & VbCrLf &""Tap or click 'Ok' to exit"",vbexclamation,""Please check your internet connection"":close"^)

我可以添加 yes no 按钮;
mshta.exe vbscript:Execute^("msgbox ""Registers NOT submitted""& VbCrLf & VbCrLf &""Tap or click 'Ok' to exit"",VBYesNo,""Please check your internet connection"":close"^)

我需要做的是根据他们按下的按钮来路由脚本其余部分的路径 - 是/否。这可能不引用外部 .vbs 吗?

非常感谢。

最佳答案

不容易,不。 VBScript 和 JScript 的 HTA 实现都没有提供生成退出代码的 native 方式。您可能会找到与 HTA 实例对应的进程对象,然后使用该对象的 .Terminate退出非零的方法(如 this answer 中所示);或者可能让 HTA 有条件地写入临时文件或存储注册表值。但是所有这些选择都涉及离开优雅的单线世界,您不妨使用 hybrid script它确实识别退出非零的命令。

如果您追求的是整洁的单行,那么使用 PowerShell 可能会更好:

powershell "add-type -As System.Windows.Forms; exit([windows.forms.messagebox]::show(\"Registers NOT submitted.`n`nDo you want to continue?\",'Warning',4))"

这将退出"is"状态 6,“否”状态 7。所以基本上...

if errorlevel 7 (
rem // user chose "No"
exit /b
) else (
rem // user chose "Yes"
goto begin
)

那个 [windows.forms.messagebox]::show 中“4”的参数方法可以是以下任何值:

0 -- OK
1 -- OK Cancel
2 -- Abort Retry Ignore
3 -- Yes No Cancel
4 -- Yes No
5 -- Retry Cancel

这些按钮会产生以下退出代码:

OK = errorlevel 1
Cancel = errorlevel 2
Abort = errorlevel 3
Retry = errorlevel 4
Ignore = errorlevel 5
Yes = errorlevel 6
No = errorlevel 7

关于batch-file - 根据按下的按钮路由脚本的路径 mshta.exe vbscript :Execute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com