Autor
|
Tema: Crear proceso en C con Codeblocks que no muera al matar al proceso padre (Leído 4,299 veces)
|
DrKillador
Desconectado
Mensajes: 56
|
Hola foreros! Estoy practicando la creacion de hebras y procesos en C, con Codeblocks en Windows. De momento he hecho una aplicacion que abre la calculadora desde una hebra. Funciona perfecta. //exec es una funcion que ejecutará el programa pasado como argumento, en las pruebas estoy utilizando calc.exe DWORD WINAPI b(LPVOID lpParam) { exec(lpParam); return 0; } void a(char *lpParam) { int dth1; HANDLE hth1; hth1=CreateThread(NULL, 0, b(lpParam), &dth1, 0, NULL); if(hth1==NULL) ExitProcess(dth1); }
Mi duda ahora es la siguiente, cuando cierro la aplicacion se me cierra tambien la calculadora. Entiendo que es el comportamiento correcto, porque una hebra no deja de ser un hilo que depende del proceso padre. ¿Pero como deberia abrir la calculadora para que cuando muera el padre no muera el hijo? ¿No me valdria con crear una hebra no? ¿Deberia ser un proceso con CreateProcess? Graxxxxx
|
|
|
En línea
|
Python <3 Python
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Exacto, tendría que ser un proceso nuevo Los hilos (hebras) dependen del proceso padre.
|
|
|
En línea
|
|
|
|
DrKillador
Desconectado
Mensajes: 56
|
Entiendo la teoría, pero a la hora de implementarlo tengo una duda existencial. Con CreateThread yo podia pasarle como argumento una función que quería que me ejecutase "en paralelo" (en el caso anterior: b(lpParam)). Pero con CreateProcess, solo puedo pasarle como argumento un exe, es decir, un programa ¿no? CreateProcess(0,argument,0,0,TRUE,0,NULL,NULL,&si,&pi);
Graxxx men
|
|
|
En línea
|
Python <3 Python
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
CreateProcess lanza un nuevo programa desde cero, el nombre se indica en el primer campo y los argumentos en el segundo campo. Los exe pueden recibir argumentos, no sé si has visto una declaración main de este estilo: int main(int argc,char** argv)
argc es el número de argumentos y argv son los distintos argumentos
|
|
|
En línea
|
|
|
|
aguml
Desconectado
Mensajes: 378
|
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Detach no sirve para eso Cuando finaliza el programa, se cierra igualmente.
|
|
|
En línea
|
|
|
|
DrKillador
Desconectado
Mensajes: 56
|
Gracias men, entonces no me queda otra que pasar el código de la funcion que queria ejecutar en un nuevo proceso a un nuevo exe, para poder lanzarlo de manera independiente
saludosss
|
|
|
En línea
|
Python <3 Python
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Matar un proceso con un bat
Scripting
|
Meta
|
2
|
8,875
|
7 Agosto 2007, 23:20 pm
por Siuto
|
|
|
Matar proceso en VB6
« 1 2 »
Programación Visual Basic
|
& eDu &
|
11
|
13,165
|
28 Junio 2008, 00:14 am
por astaroth_15
|
|
|
Matar proceso vbs
Scripting
|
Isótopo
|
5
|
11,403
|
31 Diciembre 2008, 04:02 am
por Novlucker
|
|
|
Matar proceso segun su uso de cpu o memoria ram Window 7
.NET (C#, VB.NET, ASP)
|
eleze
|
5
|
4,453
|
7 Enero 2018, 03:26 am
por Serapis
|
|
|
Detectar Proceso Padre (VB.net)
.NET (C#, VB.NET, ASP)
|
**Aincrad**
|
6
|
2,913
|
17 Marzo 2019, 20:56 pm
por **Aincrad**
|
|