elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ejecutar VBScript en VB.NET "On The Fly"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejecutar VBScript en VB.NET "On The Fly"  (Leído 12,139 veces)
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Ejecutar VBScript en VB.NET "On The Fly"
« en: 19 Marzo 2009, 21:21 pm »

Buenas a todos.
Ese es mi problema, ejecutar un vbscript en vb.net al vuelo.

Se puede hacer mediante archivos temporales, pero lo que a mi me interesa es crear una función en vbscript y poder ejecutarla desde mi aplicación, obviamente recuperando el resultado de esa función.

Si alguno me puede ayudar se lo agradecería.

Saludos


En línea

Mr. Crowley


Desconectado Desconectado

Mensajes: 343


Costa Rica


Ver Perfil WWW
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #1 en: 20 Marzo 2009, 00:05 am »

Cree el objecto FileSystemObject, o el que desee utilizar.. y listo!  ;D


En línea

Mi blog personal: www.calirojas.com
KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #2 en: 20 Marzo 2009, 12:43 pm »

No conozco mucho de VBscript, pero en VB.net tenes la clase VBCodeProvider que te permite compilar y ejecutar codigo dinamicamente, osea en memoria si generar exe ni dll.

En este link tenes ejemplos en c#, pero podes pasarlo a vb facilmente solo recorda usar VBCodeProvider en vez de CSahrpCodeProvider.


http://www.codeproject.com/KB/dotnet/DynamicCompileAndRun.aspx
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #3 en: 20 Marzo 2009, 14:42 pm »

KJD muchas gracias por el link. Entre hoy y el lunes voy a estar haciendo pruebas con el tema.
En cuanto tenga noticias posteo los resultados.

Gracias.-
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #4 en: 20 Marzo 2009, 15:06 pm »

Ahora no tengo el .NET en la pc, pero revisa si entre los objetos que se pueden agregar no hay uno de nombre "Windows Script Host Object Model" o similar, con eso debería de bastar  :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #5 en: 20 Marzo 2009, 16:11 pm »

Novlucker pero con WSH tengo que poner la ruta del script. O acaso puedo hacerlo en el aire tambien?

En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #6 en: 20 Marzo 2009, 16:17 pm »

WSH es Windows Script Host, comprende VBS, JS y WMI, y solo tienes que incrustar el code del vbs en tu código VB y ya, no se crea ningún archivo  :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #7 en: 20 Marzo 2009, 16:29 pm »

Novluckers te comento que es lo que quiero hacer.

Mi aplicación utiliza sus propias variables. Una de las opciones es asignarle valores a esas variables.
Lo que quiero hacer es que el usuario escriba una función en VBS (la cual se guarda en una DB) y llegado el momento de usar esa variable que mi aplicación ejecute esa función escrita por el usuario y obtenga el retorno de la misma.
Me explico? Maso o menos es así la cosa.
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #8 en: 20 Marzo 2009, 18:11 pm »

Bueno tengo este código de ejemplo. El inconveniente ahora es como recuperar los datos.

Código:
Imports IWshRuntimeLibrary

Código:
Dim host As New MSScriptControl.ScriptControlClass
Dim Cod As String

host.Language = "VBScript"

Cod = "Function Test(nombre)" & vbCr
Cod += "getname= mid(nombre,1,instr(nombre,""|"")-1)" & vbCr
Cod += '"Msgbox(getname)" & vbCr
Cod += "End Function"

host.AddCode(Cod)
host.Run("Test", "mariano|malomo")

Así me devuelve un resultado en un msgbox de vbs. Pero quiero que lo devuelva a una variable así puedo utilizar ese resultado.
Sigo investigando.

En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Ejecutar VBScript en VB.NET "On The Fly"
« Respuesta #9 en: 20 Marzo 2009, 19:16 pm »

Listo. Solucionado.
Dejo el codigo

   
Código:
Dim host As New MSScriptControl.ScriptControlClass
        Dim Cod As String
        Dim ret As String

        host.Language = "VBScript"

        Cod = "Function Test(nombre)" & vbCr
        Cod += "getname= mid(nombre,1,instr(nombre,""|"")-1)" & vbCr
        Cod += "Test = getname" & vbCr '"Msgbox(getname)" & vbCr
        Cod += "end function"

        host.AddCode(Cod)
        ret = host.Run("Test", "mariano|malomo")

        MsgBox(ret)
« Última modificación: 25 Marzo 2009, 18:06 pm por elmaro » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejecutar dos ejecutables(exe) con VBSCRIPT
Scripting
Ryui 1 2,744 Último mensaje 6 Enero 2018, 20:05 pm
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines