gpt4 book ai didi

javascript - 我需要知道用户使用 MsgBox 做什么。非常基本的 VBScript

转载 作者:搜寻专家 更新时间:2023-11-01 00:32:17 26 4
gpt4 key购买 nike

我曾经有一个脚本 (msgbox.vbs) 是这样的:

Set objArgs = WScript.Arguments
messageTitle = objArgs(0)
messageText = objArgs(1)
MsgBox messageText, 1, messageTitle

我是编码新手,以前从未用 VBScript 编码过,但我需要更改此脚本,以便我可以从调用此脚本的 JavaScript 脚本中读取用户是在对话框中单击“确定”还是“取消” MsgBox 对话框出现时出现的框。所以我尝试了这个:

Set objArgs = WScript.Arguments
messageTitle = objArgs(0)
messageText = objArgs(1)
retValue = MsgBox (messageText, 1, messageTitle)

if retValue == 1 Then
WScript.Quit 11
ElseIf retValue == 2 Then
WScript.Quit 22
Else
End If

我想我会尝试从我学到的 MsgBox 中获取返回值 here然后编写一个 if then else 语句使其退出并返回一个错误代码,我可以从读取退出代码的 JS 回调函数中读取该错误代码。

从第一个脚本开始,我得到的错误代码为 0,对话框出现得很漂亮。现在,使用我的新代码,我得到一个错误代码 1,对话框不再出现 :(

我想念对话框,我需要它。我还需要知道用户单击了哪个按钮,以便我可以继续我的程序的其余部分。

在此先感谢您的帮助,我真的很感激!

如果您好奇的话,这里是调用 .vbs 的 Javascript(只是一个编辑过的 NPM 版本 here ):

/*
By Tomas Pollak <tomas@forkhq.com>.
MIT License.
*/

var join = require('path').join,
spawn = require('child_process').spawn;

var Dialog = module.exports = {

info: function(str, title, callback){
this.show('info', str, title, callback);
},

warn: function(str, title, callback){
this.show('warning', str, title, callback);
},

show: function(type, str, title, callback){
if (!str || str.trim() == '')
throw('Empty or no string passed!');

if (typeof title == 'function') {
callback = title;
title = null;
}

var cmd = [],
title = title ? title : 'Important';

var str = (str+'').replace(/([.?*+^$[\]\\(){}<>|`-])/g, "\$1");

cmd.push('cscript');
cmd.push(join(__dirname, 'msgbox.vbs'));
cmd.push(title) && cmd.push(str);

this.run(cmd, callback);

},

run: function(cmd, cb){
var bin = cmd[0],
args = cmd.splice(1),
stdout = '', stderr = '';

var child = spawn(bin, args);

child.stdout.on('data', function(data){
stdout += data.toString();
})

child.stderr.on('data', function(data){
stderr += data.toString();
})

child.on('exit', function(code){
cb && cb(code, stdout, stderr);
})
}

}

最佳答案

VBScript中的eq运算符是=,不是==,所以改

if retValue == 1 Then

if retValue = 1 Then

(无处不在!)

更新评论:

你应该使用 MsgBox Constants ;路过

vbOKCancel - 1 - 显示确定和取消按钮

而不是像 1 这样的神奇数字可以避免误导其他人。

关于javascript - 我需要知道用户使用 MsgBox 做什么。非常基本的 VBScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26368354/

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