我希望这不是一个简单的问题,但在Windows中,是否有可能以编程方式(C ++)检查哪些DLL已被其他同时运行的程序加载?
我知道GetModuleHandle
函数可用于检测当前程序已加载的DLL,但它不能跨程序边界工作。
有什么想法吗?
答案 0 :(得分:4)
Toolhlp32.dll就是这么做的。看这里: http://msdn.microsoft.com/en-us/library/ms686840(v=VS.85).aspx
您最终需要的API是Module32First / Next。
答案 1 :(得分:1)
PSAPI(http://msdn.microsoft.com/en-us/library/ms682621(v=vs.85).aspx)还提供了一些功能来通过系统进程和模块列表进行搜索,它还可以获取toolhlp32可能由于各种原因(例如手动隐藏)而错过的一些模块)。它也适用于x64进程iirc