我需要通过在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