Domanda

Ho bisogno di avviare un file script di Visual Basic utilizzando WMI in un codice C #.

Io non capisco cosa c'è di sbagliato con questo pezzo di codice? Risultato sarà sempre 8 (Errore sconosciuto). Ma per esempio notepad.exe può essere avviato senza errori.

        //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);
È stato utile?

Soluzione

Gli script non sono eseguibili - sono gestiti da Windows Script Host, quindi è necessario specificare il percorso di Cscript.exe o wscript.exe prima del nome dello script:

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

Altri suggerimenti

Non so molto su questo tipo di cosa, ma credo che potrebbe essere necessario invocare host di script e passare il file vbs per eseguire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top