この 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"
。
5 月 12 日、お問い合わせいただきありがとうございます。以前はこの ActiveX コントロールについて知りませんでしたが、非常に便利なようです。
編集Ⅱ
しかし、あなたはそれを理解しましたか?あなたの例は私のアプリで完璧に機能します:
objShell.ShellExecute("cmd.exe", "cd C: C:\\cd c:\\ext_file main.exe test.txt", "C:\\WINDOWS\\system32", "open", 1);
3 つの例外があります。
1) パスに関するこの回答の前半で言及したもの
\
2)引数にも使用されるエスケープ。
3) 最後の引数は文字列ではなく数値型です。