質問

私はC#のコードでWMIを使用して、Visual Basicスクリプトファイルを起動する必要があります。

私はかなりのコードのこの部分に問題があるかを理解していませんか?結果は常に8(不明なエラー)になります。しかし、例えばnotepad.exeを失敗せずに起動することができます。

        //Get the object on which the method will be invoked
        ManagementClass processClass = new ManagementClass("Win32_Process");

        //Create an array containing all arguments for the method
        object[] methodArgs = { "C:\\MyFolder\\Test.vbs arg1 arg2", null, null, 0 };

        //Execute the method
        object result = processClass.InvokeMethod("Create", methodArgs);
役に立ちましたか?

解決

スクリプトが実行可能ではありません - 彼らはWindowsスクリプトホストで実行されているので、あなたは、スクリプト名の前にcscript.exeするパスまたはwscript.exeとを指定する必要があります:

object[] methodArgs = {   
                        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cscript.exe") + @" C:\MyFolder\Test.vbs arg1 arg2",
                        null,
                        null,
                        0
                      };

他のヒント

私は事のこのタイプについて多くを知っていますが、スクリプトホストを起動し、それを実行するためにVBSファイルを渡す必要があるかもしれないと思う。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top