如何用C#代码中的WMI启动脚本(vbs)?

问题描述:

我需要通过在C#代码中使用WMI来启动Visual Basic脚本文件。如何用C#代码中的WMI启动脚本(vbs)?

我不太明白这段代码有什么问题吗?结果将始终为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文件运行。