我使用ActiveXObject使用JavaScript从我的asp.net运行exe。它成功运行,参数除外:
function CallEXE() {
var oShell = new ActiveXObject("Shell.Application");
var prog = "C:\\Users\\admin\\Desktop\\myCustom.exe";
oShell.ShellExecute(prog,"customer name fullname","","open","1");
}
示例,我传递了类似参数,[1]客户名称,[2]全名,但在空格字符后,Javascript感知不同的参数。
我该如何解决?
答案 0 :(得分:1)
ShellExecute
将第二个参数作为表示 all 参数的字符串,并使用常规shell处理规则处理这些参数:特别是空格和引号。
oShell.ShellExecute(prog,"customer name fullname",...)
在这种情况下,传递的3个参数是customer
,name
,fullname
<德尔> oShell.ShellExecute(prog,"customer 'a name with spaces' fullname",...)
德尔>
由Remy Lebeau - TeamB更正/注意,双引号可用于定义参数边界:
oShell.ShellExecute(prog,'customer "a name with spaces" fullname',...)
在这种情况下,传递的3个参数是customer
,a name with spaces
,fullname
也就是说,想一想如何从命令提示符中调用myCustom.exe
。使用ShellExecute
时也是如此。
快乐的编码。
答案 1 :(得分:1)
尝试使用反斜杠转义空格。 cmd.exe cd
命令执行此操作,也许您会很幸运,它也会在这里工作...
oShell.ShellExecute(prog,"customer a\ name\ with\ spaces fullname", ...)