[C++] ¿Como verifico si X archivo esta en curso y como terminarlo?

Iniciado por RayHack, 15 Marzo 2014, 16:41 PM

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

RayHack

Buenas amigos quisiera una pequeña ayuda con una duda que tengo.

¿Como puedo saber si X .dll esta en curso?

Bueno estaba buscando información al respecto de esto pero no encuentro exactamente lo que busco, quiero verificar si hay X dll en curso y si es asi arrancar mi dll y cuando la X dll se cierre entonces la mia por igual.

PD: No necesito que me hagan el código si no que funciones se usarian, por ejemplo como verificar, ejecutar y terminar una dll.

Un saludo y muchas gracias.

El Benjo

Las Dll no se arrancan ni se destruyen sólo se transforman. XD

No, hablando en serio, una dll no está realmente en ejecución, debido a que éstas no poseen una función main. Que estén o no en memoria depende del sistema operativo, es decir, si tú necesitas una función dentro de la dll no debes preocuparte de si otra aplicación la está utilizando, la dll sólo se cargará en memoria una vez, independientemente de cuantas aplicaciones la estén utilizando.

Creo que en todo caso lo que buscas es saber que procesos están en ejecución. De ser así la función que estás buscando es "EnumProcesses".

http://msdn.microsoft.com/en-us/library/windows/desktop/ms684847(v=vs.85).aspx
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

x64core

GetModuleHandleW/PEB para saber si una dll esta cargada en el proceso. Windows muy rara vez descarga sus DLLs.
Puede que estes interesado en EnumProcessModules aunque la verdad dependiendo de la tarea que quieras realizar podrias usar Hooking
entre otras cosas más.

RayHack

Muchas gracias a los dos por sus ayudas,  utilicé GetModuleHandleW y me funcionó perfecto.

Un saludo y muchas gracias.