也许您的计算机中没有安装(或注册)这个 ActiveX 控件。
WScript.Shell
应该在每个 Windows 中找到:
var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
如果 中有空格commands to run
,则需要使用双引号。
编辑
以下内容主要来自MSDN: http: //msdn.microsoft.com/en-us/library/windows/desktop/gg537745 (v=vs.85).aspx
iRetVal = Shell.ShellExecute(
sFile,
[ vArguments ],
[ vDirectory ],
[ vOperation ],
[ vShow ]
)
让我们来吧[vDirectory]
。path of the directory
文档说:“包含sFile指定的文件的完全限定。如果未指定此参数,则使用当前工作目录。”
这意味着您对此参数的路径无效(.cmd.exe
在它的末尾)。此外,创建 ActiveX 的所有示例都是这样的:
var objShell = new ActiveXObject("shell.application");
注意 中的小写字母"shell.application"
。
May12,谢谢你提出这个问题。我以前不知道这个ActiveX控件,它对我来说似乎很有用。
编辑二
但是你明白了吗?您的示例在我的应用程序中完美运行:
objShell.ShellExecute("cmd.exe", "cd C: C:\\cd c:\\ext_file main.exe test.txt", "C:\\WINDOWS\\system32", "open", 1);
除了三个例外:
1)我在这个答案的前面提到的关于路径的那个
2) 转义\
也用于参数。
3) 最后一个参数是数字类型,而不是字符串。