GeneXus - Ejecutar .exe externo GX X EVO3 (.NET Y SQL)

 
Vista:
sin imagen de perfil
Val: 67
Plata
Ha disminuido 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

Ejecutar .exe externo GX X EVO3 (.NET Y SQL)

Publicado por Javier (46 intervenciones) el 23/11/2017 17:01:25
Hola:
Tengo un webpanel ( GX X EVO3 .NET y SQL) con un botón para llamar a un .exe externo.
La computadora en donde se ejecuta la aplicación web tiene Windows XP y FireFox v54.
La documentación indica que se debería hacer de esta forma:
1
2
&App = "hola.exe"
&Ret = Shell(&App,1 )

El ejecutable se encuentra en la carpeta web de la aplicación ( CSharpModel\web )
Pero al ejecutar estas líneas el error que aparece ( usando try catch) dice:
EL SISTEMA NO PUEDE HALLAR EL ARCHIVO ESPECIFICADO.

Pensando en que sería un problema con la ruta, modifiqué el código:
1
2
3
4
5
csharp string url = new Uri(Context.Request.Url, ResolveUrl("~")).ToString();
csharp [!&RutaApp!] = url ;
 
&App = &RutaApp + "hola.exe"
&Ret = Shell(&App,1 )

Pero ahora el mensaje de error dice:
NO HAY NINGUNA APLICACION ASOCIADA CON EL ARCHIVO ESPECIFICADO PARA ESTA OPERACION

Ojalá alguien pueda darme una mano con este problemita.
Muchas gracias!
Saludos
Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

Ejecutar .exe externo GX X EVO3 (.NET Y SQL)

Publicado por Cesar (3 intervenciones) el 23/11/2017 17:17:07
Hola.

Si es una aplicacion web, la pagina va a intentar buscar el ejecutable en el servidor, y correrlo en el servidor.

Debes abrir el ejecutable del lado cliente, con JavaScript.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 67
Plata
Ha disminuido 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

Ejecutar .exe externo GX X EVO3 (.NET Y SQL)

Publicado por Javier (46 intervenciones) el 24/11/2017 16:45:10
Gracias Cesar por tu comentario.

El .exe se encuentra en la misma carpeta donde se encuentra el sitio web.

Esta línea:

csharp string url = new Uri(Context.Request.Url, ResolveUrl("~")).ToString();

Me obtiene la cadena:: http://localhost/GXApp/NetEnvironment que luego añado al .exe.

Si uso JS desde GX para ejecutar el .EXE, el orden en que se va a ejecutar el JS, no es el deseado.
Se va a ejecutar al último de una secuencia. Y se necesita que se ejecute antes de la misma.
Me pasó con otros códigos .js que quise implementar desde GX.
Además la doc de inet para poder ejecutar .exe o un .bat con JS casi todas hacen referencia a IE.

Probablemente tenga una confusión con respecto a las rutas.
Ojalá puedas leer este comentario y opines.

Muchas gracias por tu ayuda!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar