(结贴率100%) 求助如何判断一个DLL是否被加载了?
我是这么判断的
比如这个DLL是 1.dll
Rewrite创建1.dll
如果创建失败,则这个DLL正在运行...
如果创建成功,则DLL没有运行,那么DLL也变成0KB了,我之前复制到别的文件夹备份,然后恢复
但是觉得这个方法太2了.
有没有好的方法?遍历就算了...效率慢不老方便,或者给个效率快的代码看看?
[解决办法]
独占写方式打开这个DLL,如果能打开,没加载,否则....
[解决办法]
//伪代码
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, processID ); ... //获取进程中所有模块 EnumProcessModules(hProcess, hMods, sizeof(hMods), @cbNeeded)) for ... do begin ... if ( GetModuleFileNameEx( hProcess, hMods[i], szModName, sizeof(szModName) / sizeof(CHAR))) then //to do:你的代码 end; // 释放句柄,解除引用 CloseHandle( hProcess );
[解决办法]
用 改变 1.dll 文件名的方式~ 不能改就是在用... 能改就再改回来...