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