Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Evento Desde Otro Ejecutable
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Evento Desde Otro Ejecutable 
 
Hola, quisiera saber si hay alguna forma de que a un ejecutable del gambas, le pueda llegar algún evento para notificar los procesos de acontecimientos de sistema., se que en C si se puede con

signal: void(*signal (int sig, void (*disp) (int))) (int);

alguien me puede ayudar gracias.
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
Hola

Conceptualmente es bastante distinto. En C mediante lo que has puesto antes u lo que haces es decir a un proceso lo que debe hacer cuando reciba una señal de valor X.

Aquí es distinto porque los eventos ya funcionan per se por lo que no necesitas controlar que se dispare el keypress al pulsar una tecla, sin embargo yo creo que lo que tu preguntas es por la posibilidad de poder controlar la ejecución de eventos y en función de una determinada circunstancia poder modificarlos o anularlos.

Y para eso está el manejador de eventos y el control de eventos. Te sugiero que mires esto
Control de eventos en GAMBAS

Y el observador de eventos que lo supervisa
La clase Observer

Con la clase observer supervisas eventos y con el control de eventos puedes agregar o quitar o bloquear eventos a un determinado objeto.

 
 



 
última edición por soplo el Lunes, 30 Noviembre 2009, 22:52; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
PRIVATE SUB TeSirveDBUS(DBUSCommand AS String)

DIM DBUSHelp AS String
DIM ReadHelp AS TextArea

  IF IsAnswer("DBUS") THEN
    IF DBUSCommand = "¡Ouch!" THEN
      ReadHelp = NEW TextArea(ME)
      SHELL "man dbus-send & man dbus-launch" TO ReadHelp.Text
      Desktop.Open("http://dbus.freedesktop.org/doc/dbus-tutorial.html")
    ELSE
      SHELL DBUSCommand
    ENDIF
  ELSE
    Message.Error("Sorry, I can't help you")
  ENDIF

END
 

 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
última edición por fabianfv el Martes, 01 Diciembre 2009, 04:56; editado 1 vez 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
Hola
Me acabo de dar cuenta que respondí mal porque eso que puse vale para eventos de la aplicación propia no de otra aplicación.

Así que me temo que lo único que se me ocurre es buscar el proceso mediante desktop.find dando por hecho que estamos hablando de un proceso (con su propio pid) y no un evento dentro de un proceso.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
A lo mejor me explicado mal, quiero que desde el ejecutable2 cuando ocurra algo, el ejecutable1 que es un ejecutable del gambas realiza una accion.
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
ah, efectivamente te entendí mal.

Tu quieres que en determinada circunstancia de un programa se pueda ejecutar otro programa. Eso es muy simple. Tienes varias formas de hacerlo.

Puedes usar exec, shell o el objeto process cada uno con sus ventajas y desventajas.

La clase process

¿Es eso no?
 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
Campanillas, la comunicación entre procesos se realiza actualmente en Linux a través de DBUS, gambas no facilita ningún mecanismo para ello.

Es decir, si la ejecución de los programas es independiente podrías usar: DBUS (si la comunicación es local y el primer programa lo usa) o bien un protocolo de red (si los programas se ejecutan en máquinas diferentes, pero también dependes del protocolo que use el primer programa).

La descripción del problema que nos das es demasiado escueta, pero creo entender que tienes un ejecutable (que no fue hecho en gambas) que estaría enviando algún tipo de señal y necesitas capturarlas en otro programa (hecho en gambas). Si este es el caso estás dependiendo fundamentalmente de la manera en la que el primer programa intenta comunicarse (protocolo). Sin conocer el protoco que usa el primer programa es imposible determinar una solución.

gambas facilita la comunicación en red a través del componente gb.net (incluyendo la comunicación por puerto serie).

Cualquier otro tipo de comunicación entre procesos debe hacerse con herramientas externas (y esto muchas veces es fácil gracias a GNU/Linux y especialmente a DBUS).

gambas es un lenguaje de alto nivel, a diferencia de C que es híbrido en ese sentido. Por lo tanto, no encontrarás en gambas grandes facilidades de bajo nivel como en C. A lo sumo puedes realizar llamadas a funciones externas de bibliotecas escritas en C, si crees que esto te puede servir (para tu caso creo que no) lee el capítulo 9 del libro de gambas disponible en la sección de descargas.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
Exactamente tengo un ejecutable hecho en Lenguaje C y quiero enviar algún tipo de señal y y capturarlas en gambas.
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
Y ese ejecutable hecho en C, ¿es un programa tuyo? ¿Cómo se comunica con otros programas? ¿Que eventos de ese programa quieres capturar? ¿Comprendiste que sin más información no podemos ayudarte?
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Desde Otro Ejecutable 
 
Citar:
Citar:
Re: Evento Desde Otro Ejecutable   Y ese ejecutable hecho en C, ¿es un programa tuyo? ¿Cómo se comunica con otros programas? ¿Que eventos de ese programa quieres capturar? ¿Comprendiste que sin más información no podemos ayudarte?



El ejecutable hecho en C es mio.

En mi ejecutable de C puedo ejecutar eventos recibiendo una señal. Esa señal se puede emitir por ejemplo desde una consola, o otro ejecutable enviadole:

SHELL "killall -s 16 -p  ejecutableC"

y desde el codigo del ejecutableC se recibe:

signal (16,nombrefuncionaejecutar)

Esto que hago en C, lo quisiera hacer en gambas pero no se como, gracias
 



 
campanillas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron