Autor
|
Tema: Control propio y de subprocesos (Leído 3,885 veces)
|
llamamecomoquieras
Desconectado
Mensajes: 19
|
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!
|
|
|
En línea
|
|
|
|
illuminat3d
|
Facil. Vas al code de tu programa y añades : Private Sub Form_Unload(Cancel As Integer) ' Aqui lo que quieras hacer cuando el programa se cerrase.. End Sub Saludos! 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..
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Lo que has de hacer (Si no recuerdo mal) para evitar el cierre es poner: Private Sub Form_Unload(Cancel As Integer) Cancel = 1 'Aqui cancelamos el cierre... End Sub
Para comunicarse entre aplicaciones ( IPC): http://en.wikipedia.org/wiki/Interprocess_communication http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos Grax Hendrix
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. No gracias Saludos
|
|
« Última modificación: 2 Diciembre 2008, 21:56 pm por Karcrack »
|
En línea
|
|
|
|
& eDu &
Desconectado
Mensajes: 580
|
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.
|
|
|
En línea
|
|
|
|
XcryptOR
Desconectado
Mensajes: 228
|
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
|
|
|
En línea
|
|
|
|
llamamecomoquieras
Desconectado
Mensajes: 19
|
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
|
|
|
En línea
|
|
|
|
XcryptOR
Desconectado
Mensajes: 228
|
tienes la solucion si quieres utilizarla haya tu
|
|
|
En línea
|
|
|
|
llamamecomoquieras
Desconectado
Mensajes: 19
|
tienes la solucion si quieres utilizarla haya tu
Sí, ya la vi, el inconveniente es que los subprocesos no los he programado yo
|
|
|
En línea
|
|
|
|
seba123neo
|
Hola, el evento Query_Unload tiene diferentes valores de UnloadMode , ahi tenes si lo cerras desde el administrador o de otro lado...
|
|
|
En línea
|
|
|
|
llamamecomoquieras
Desconectado
Mensajes: 19
|
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.
|
|
|
En línea
|
|
|
|
|
|