Autor |
Mensaje |
GambasLinux
Usuario
Registrado: Febrero 2010
Mensajes: 33
Edad: 33
|
Comunicación Con Otra Aplicación Gambas
Deseo ejecutar una pequeña aplicación gambas desde otra aplicación gambas y que sea en modal y pasarle valores al momento de mandarla a ejecutar.
EDITADO PARA DAR MAYOR INFORMACION
Asi llamo a la otra aplicación y trato de pasarle un parametro
EXEC ["Nombre de la aplicacion a ejecutar", NombArchivo] WAIT
la aplicación que recibe el parámetro la cual se encuentra ejecutable posee:
un modulo principal
un formulario
el problema esta en la declaración del modulo principal para que reciba el parámetro
Lo hice asi, pero me da error de argumento
Gracias por la ayuda.
última edición por GambasLinux el Sabado, 20 Febrero 2010, 04:05; editado 3 veces
|
#1 Viernes, 19 Febrero 2010, 21:32 |
|
|
alexprox
Usuario
Registrado: Octobre 2009
Mensajes: 27
Edad: 35 Ubicación: venezuela
|
Re: Comunicación Con Otra Aplicación Gambas
buenas amigo gambero jejejej bueno es fácil desde exec haces el llamado eso es la consola y sobre lo de lo otro es creo que con una base de dato sqlite guarda temporalmente los datos y después lo abres en el otro bueno eso digo yo no se alo mejor hay otro método
|
#2 Sabado, 20 Febrero 2010, 02:39 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Comunicación Con Otra Aplicación Gambas
http://foro.gambas-es.org/viewtopic.php?t=440&p=2510#p2510
¿Por qué ves diferente que el proceso a ejecutar sea una aplicación gambas o una en c o un script bash o lo que sea?
Es un proceso y ya está.
|
#3 Sabado, 20 Febrero 2010, 04:22 |
|
|
GambasLinux
Usuario
Registrado: Febrero 2010
Mensajes: 33
Edad: 33
|
Re: Comunicación Con Otra Aplicación Gambas
soplo escribió: http://foro.gambas-es.org/viewtopic.php?t=440&p=2510#p2510
¿Por qué ves diferente que el proceso a ejecutar sea una aplicación gambas o una en c o un script bash o lo que sea?
Es un proceso y ya está.
No la veo clara pues en ese post hay son clases y un solo programa y esta dentro de la misma aplicación me parece...
Yo tengo dos aplicaciones ejecutables
Aplicacion1.gambas
Aplicacion2.gambas
estando en la Aplicacion1.gambas ejecuto a la aplicación2.gambas y eso sucede pero siento dificultad para que la Aplicacion2 reciba el parámetro que le estoy enviando.
|
#4 Sabado, 20 Febrero 2010, 04:39 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Comunicación Con Otra Aplicación Gambas
Mírate el componente gbsettings. Con él puedes crear un fichero de configuraciones con el formato clásico
[Nombre de catergoria]
parametro1=valor
parametro2=valor
...
Luego es sencillísimo que el formulario main busque el mencionado fichero y se adapte a los parámetros que le hayas colocado desde el primero programa.
Suerte
=================== No podemos regresar
|
#5 Sabado, 20 Febrero 2010, 13:14 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Comunicación Con Otra Aplicación Gambas
Pues hombre es que tu lanzas un proceso. Da igual como esté codificado ese proceso. Tu puedes enviarle datos a ese proceso (como a cualquier otro) y también puedes capturar la salida de ese proceso y evaluarla. También tienes un evento el caso de un error. iniciarlo, pararlo, etc.
El caso anterior es que tu programa ejecute a otro programa. Si es así lo de antes es plenamente válido. Otra cosa es que me digas que el usuario lanzó un proceso y un rato despues escogió orra opción y lanzó otro. Si en ese caso tu quieres que ambos se conecten no te vale el método anterior. Solo en ese caso.
En este segundo caso tu deberías mirar la lista de procesos corriendo (ps -ef | grep tu programa) a ver si está allí. Si está entonces deberías comunicar con él por medio de sockets o bien porque uno deja una información (en settings, una tabla o un archivo plano) y el otro la recoge.
|
#6 Sabado, 20 Febrero 2010, 15:42 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Comunicación Con Otra Aplicación Gambas
A ver. Yo creo que lo que quiere hacer es llamar a otra aplicación gambas desde su aplicación original.
Esto se puede hacer con EXEC ["ruta a la aplicación2.gambas"] pero Gambaslinux quiere pasar ciertos datos como parámetros desde la "Aplicación1" que es la que llama a la "Aplicacion2".
Para recibir esos parámetros necesitas usar un módulo de inicio y su evento Main de esta manera:
Application.Args es un array y siempre tiene al menos un elemento, que es el índice 0 y contiene el nombre de la aplicación. A partir del 1, serán los argumentos que le pases al ejecutable separados por un espacio de esta forma:
miaplicacion2.gambas argumento1 argumento2 etc
O sea, que entonces Application.Args[1] tendrá el valor "argumento1", Application.Args[2] tendrá el valor "argumento2", y así sucesivamente.
Para escribirlo en gambas, tendrías que hacer:
EXEC ["ruta a mi aplicacion2.gambas", "argumento1", "argumento2", "etc"]
Si lo que necesitas es pasar un archivo, puedes pasar su "ruta", pero tendrás problemas para "escapar" los caracteres especiales... la opción de escribir un fichero con la ruta y leer luego ese fichero, suena bastante aceptable, o bien las otras soluciones propuestas usando gb.settings o una bd.
Respecto al Showmodal en la "aplicacion2" no creo que sea posible ya que al no es el mismo proceso y no tiene un "padre".
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#7 Lunes, 22 Febrero 2010, 17:06 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Comunicación Con Otra Aplicación Gambas
Citar: A ver. Yo creo que lo que quiere hacer es llamar a otra aplicación gambas desde su aplicación original.
Esto se puede hacer con EXEC ["ruta a la aplicación2.gambas"] pero Gambaslinux quiere pasar ciertos datos como parámetros desde la "Aplicación1" que es la que llama a la "Aplicacion2".
En la clase que inicia el proceso pongo esto
Así que cuando inicio mi aplicación e instancio la clase ya se ejecuta el proceso con los parámetros que yo quiera
Así que al instanciar la clase se ejecuta un proceso que irá a su rollo. Si tras esa instanciacion quieres abrir uno o siete formularios es otra cosa, el proceso seguirá a lo suyo. Los parámetros que se le pasen son jugar con un string o lo que se quiera. También podrían ser propiedades u otros parámetros que se le pasan a la case de una forma u otra. Al final hay un comando que es el que se ejecuta en el exec y que incluye la orden y sus parámetros.
Me molesté en escribir una clase que ponía propiedades y métodos para lanzar el proceso y comprobar su estado, arrancarlo, pararlo o reiniciarlo a voluntad, pero es evidentemente un error porque no se ha leído. Esto me pasa por tener interes en que algo se comprenda. No es un reproche a nadie, solo una reflexión interior. El caso que yo puse está bien desde un principio
última edición por soplo el Lunes, 22 Febrero 2010, 21:12; editado 1 vez
|
#8 Lunes, 22 Febrero 2010, 21:12 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Comunicación Con Otra Aplicación Gambas
Soplo, ¿has borrado tu post donde ponías la clase sobre el manejo de los procesos?
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#9 Martes, 23 Febrero 2010, 18:36 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Comunicación Con Otra Aplicación Gambas
No no, aquí está
La clase process
http://foro.gambas-es.org/viewtopic...ghlight=process
Lo que pasa es que igual conviene cambiarle el título o aún mejor pasarla a la base de conocimientos. A mi también me ha costado encontrarlo pero sabía que estaba. Menos mal que aún se puede encontrar algo buscando secuencialmente que si no me da algo.
Se me ocurre que quizá para algunos post interesantes pero que no merecen estar en la base de conocimientos se puede hacer un único post con chincheta donde aparezca un índice de post importantes por la razón que sea y que los moderadores cuando veis algo que merece la pena ir al índice lo añadis.
O quizá utilizar esas opciones que aún no he usado de observar o seguir algunos hilos interesantes, No se bien como funcionan estas cosas pero este sitio está lleno de cositas de esas que algún día me pondré a probar a ver que tal ja ja ja.
El caso es que está dificil de encontrar y posiblemente no sea el único.
|
#10 Martes, 23 Febrero 2010, 20:13 |
|
|
|