Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: llamamecomoquieras en 2 Diciembre 2008, 21:07 pm



Título: Control propio y de subprocesos
Publicado por: llamamecomoquieras en 2 Diciembre 2008, 21:07 pm
Buenas,

Me estoy haciendo un programa que, entre otras cosas, ejecuta otra aplicación en concreto. Me gustaria crear una especie de "dependencia", de forma que si se cerrase mi programa (de cualquier manera, ctrl+alt+sup, etc.), automaticamente los hijos desaparecieran con él. Tenia pensado matarlos al llamarse form_unload, pero si me matan el proceso, esta subrutina no se ejecutaria. Tal vez con memoria compartida, mutex.. o lo que sea, se podria hacer de forma mas segura.

En fin, alguna idea pululando por vuestras mentes?

Saludos!


Título: Re: Control propio y de subprocesos
Publicado por: illuminat3d en 2 Diciembre 2008, 21:14 pm
Facil.

Vas al code de tu programa y añades :

Citar
Private Sub Form_Unload(Cancel As Integer)
' Aqui lo que quieras hacer cuando el programa se cerrase..
End Sub

Saludos! :D

Editado : Acabo de leer de nuevo tu mensaje, la primera ves no lo entendi muy bien pero ahora veo que ya probastes con el :

Private Sub Form_Unload(Cancel As Integer)

End Sub

pero es raro que no te funcione..


Título: Re: Control propio y de subprocesos
Publicado por: Karcrack en 2 Diciembre 2008, 21:54 pm
Lo que has de hacer (Si no recuerdo mal) para evitar el cierre es poner:

Código
  1. Private Sub Form_Unload(Cancel As Integer)
  2. Cancel = 1 'Aqui cancelamos el cierre...
  3. End Sub



Para comunicarse entre aplicaciones (IPC):
Código:
http://en.wikipedia.org/wiki/Interprocess_communication
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos
Grax Hendrix :P



Citar
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

No gracias :xD

Saludos :D


Título: Re: Control propio y de subprocesos
Publicado por: & eDu & en 2 Diciembre 2008, 21:55 pm
Podrías crear una conexión con los programas "hijos" y que si se cierra ese que se envie una información a los "hijos" diciendo que se cierren.


Título: Re: Control propio y de subprocesos
Publicado por: XcryptOR en 2 Diciembre 2008, 22:34 pm
si podrias utilizar mutex, cuando tu aplicación sea cerrada de improvisto por ejemplo mediante el taskmanager, tus procesos hijos vigilen constantemente mediante un timer o bucle  si el mutex padre fue cerrado si es asi, que se cierre cada uno. creo que es con una propiedad o metodo si mal no estoy es SYNCRHONIZE del mutex



Título: Re: Control propio y de subprocesos
Publicado por: llamamecomoquieras en 3 Diciembre 2008, 13:11 pm
Si, form_unload está mas que probado.
Por desgracia, cerrando mi programa con ctrol+alt+sup, form_unload no pinta nada, y se me cierra en seco. Bueno, otro truco seria ocultarlo del taskmanager, pero no parece muy elegante xD


Título: Re: Control propio y de subprocesos
Publicado por: XcryptOR en 3 Diciembre 2008, 13:55 pm
tienes la solucion si quieres utilizarla haya tu


Título: Re: Control propio y de subprocesos
Publicado por: llamamecomoquieras en 3 Diciembre 2008, 15:57 pm
tienes la solucion si quieres utilizarla haya tu

Sí, ya la vi, el inconveniente es que los subprocesos no los he programado yo  :xD


Título: Re: Control propio y de subprocesos
Publicado por: seba123neo en 4 Diciembre 2008, 00:11 am
Hola, el evento Query_Unload tiene diferentes valores de UnloadMode , ahi tenes si lo cerras desde el administrador o de otro lado...


Título: Re: Control propio y de subprocesos
Publicado por: llamamecomoquieras en 5 Diciembre 2008, 11:22 am
Nadita de nadita. Ni una ni la otra. Al cerrarlo con el taskmanager, hace catapúm y nada más. Se me ocurre tambien el interceptar la syscall, pero me parece que ese tipo en concreto no era programable. Otra idea seria ejecutar la segunda aplicación como un thread, de manera que cerrar el mío comportaria que el resto tambien lo hiciera. Pero no se si es posible.


Título: Re: Control propio y de subprocesos
Publicado por: SONIC88 en 5 Diciembre 2008, 13:01 pm
mmm tonces deberías convertirlo en proceso crítico del sistema, tal como lo hacen los antivirus o el mismo logon de windows... pero es medio fomeque probarlo porque no no se cerrará hasta que apagues la PC.

Buscare algo por ahí para eso, seguro alguien ya lo a hecho...

Saludos..