我正在开发一个dll,我需要知道它将附加到该进程的一些信息,以确定是否挂接到对某些函数的调用。例如,如果进程是explorer.exe,那么在进程为firefox.exe时,我就不想执行任何操作。为了设置全局挂钩,我使用“ AppInit_DLLs基础结构”,因此操作系统由谁来调用LoadLibrary,而不是显式地调用该进程。挂钩过程在DllMain中进行,因此我需要在这里提供信息。
提前感谢。
要获取正在加载DLL的进程的文件,可以使用GetModuleFileName:
char szExeFileName[MAX_PATH];
GetModuleFileName(NULL, szExeFileName, MAX_PATH);