API TerminateProcess function

Iniciado por Dark Invader, 10 Octubre 2011, 12:18 PM

0 Miembros y 1 Visitante están viendo este tema.

Dark Invader

El problema es que no se obtener el handle del proceso y la verdad es que he estado investigando bastante sobre el asunto...Os dejo la pagina de msdn para que lo mireis:http://msdn.microsoft.com/en-us/library/ms686714%28v=vs.85%29.aspx

como obtengo el handle de un proceso?me podriais poner un ejemplo sobre como ejecutar esta API?

Gracias a quien pueda echarme un cable  :P

Un saludo

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

dewolo

#2
si el proceso lo abris con OpenProcess, haces lo que tengas que hacer con el proceso y despues cerras el handle con closehandle  ::)

ah y antes de llamar a terminateprocess tenes que haber llamado a createprocess  ::)


Eternal Idol

Cita de: dewolo en 10 Octubre 2011, 16:58 PMah y antes de llamar a terminateprocess tenes que haber llamado a createprocess  ::)

No necesariamente, podes matar procesos creados por otros procesos.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Dark Invader

Gracias a ambos,pero me estoy haciendo un lio...xD

A ver con openprocess abro un proceso,pero si resulta que el proceso esta abierto y quiero terminarlo ¿como lo hago?¿No teneis por ahi un ejemplo sencillo de como terminar uno? :-\

Un saludo

Eternal Idol

Vos preguntaste como obtener el HANDLE al proceso, ya sabias que funcion usar para terminarlo  ;)
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Dark Invader

Sí,la función para terminarlo sé cual es,pero entonces,el handle sería la función openprocess? La verdad es que no me está quedando claro esto xD

Te pongo un ejemplo que estoy leyendo:

HANDLE Process;
DWORD PID;
process=OpenProcess(PROCESS_ALL_ACCESS,false,PID);


Pero no sé si estará bien,supuestamente asi tengo el handle llamado process,no?

Perdona si es una tonteria lo que estoy diciendo  :xD

Un saludo

Eternal Idol

Si, con OpenProcess abris un HANDLE a un proceso existente pero el PID (Process Identifier) es un parametro de entrada asi que tenes que darle valor, no puede estar indefinido como ahora.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Dark Invader

Pero entonces,¿como termino un proceso,como por ejemplo el explorer?Si el pid lo se entonces estoy terminando un proceso el cual yo he creado o tengo constancia de ello,en cambio,si por ejemplo,quiero eliminar el PID del explorer...¿Se tendria que buscar otra API para encontrarlo?  :huh:

un saludo

Eternal Idol

No, saber el PID no implica que lo hayas creado ni mucho menos.

Taking a Snapshot and Viewing Processes.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón