.net como - ¿Cómo llamar a un archivo VBScript en una aplicación C#?





openssl studio (5)


¿Quiere decir que intenta ejecutar un archivo vbs desde C #?

Se puede hacer como ejecutar cualquier otro programa desde el código C # :

Process.Start(path);

Pero debe asegurarse de que no solicitará nada, y se está ejecutando con la versión de línea de comando del intérprete:

Process.Start("cscript path\\to\\script.vbs");

Necesito llamar a un archivo VBScript (extensión de archivo .vbs) en mi aplicación C # Windows. ¿Cómo puedo hacer esto?

Hay un complemento para acceder a un archivo VBScript en Visual Studio. Pero necesito acceder al script en el código de atrás. ¿Como hacer esto?




El siguiente código ejecutará una secuencia de comandos de VBScript sin indicaciones ni errores y sin un logotipo de shell.

System.Diagnostics.Process.Start(@"cscript //B //Nologo c:\scripts\vbscript.vbs");

Una técnica más compleja sería usar:

Process scriptProc = new Process();
scriptProc.StartInfo.FileName = @"cscript"; 
scriptProc.StartInfo.WorkingDirectory = @"c:\scripts\"; //<---very important 
scriptProc.StartInfo.Arguments ="//B //Nologo vbscript.vbs";
scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up
scriptProc.Start();
scriptProc.WaitForExit(); // <-- Optional if you want program running until your script exit
scriptProc.Close();

El uso de las propiedades de StartInfo brindará acceso bastante detallado a la configuración del proceso.

Debe usar Windows Script Host si desea que el programa de script muestre ventanas, etc. También podrías intentar simplemente ejecutar cscript directamente, pero en algunos sistemas simplemente lanzará el editor :)




Este es un problema de permisos. Su aplicación appPool debe ejecutarse en el nivel de permiso más alto para hacer esto en 2008. La identidad debe ser Administrador.




Otro enfoque es crear un proyecto de biblioteca de clase VB.NET, copiar el código de VBScript en un archivo de clase VB.NET y hacer referencia a la biblioteca de clases VB.NET desde su programa C #.

Necesitará reparar cualquier diferencia entre VBScript y VB.NET (deberían ser pocas).

La ventaja aquí es que ejecutará el código en proceso.




Encontramos la causa de nuestro problema. Este código estaba usando el atributo "CodeBehind" en la directiva de la página del archivo .aspx en lugar del atributo "CodeFile" (ASP.NET 2.0 y más allá). Después de días de desesperación, una simple búsqueda y reemplazo resolvió el problema.







c# .net asp.net .net-2.0 vbscript