读书人

(结贴率100%) 怎么判断一个DLL是否被加

发布时间: 2012-06-10 14:03:15 作者: rapoo

(结贴率100%) 求助如何判断一个DLL是否被加载了?
我是这么判断的

比如这个DLL是 1.dll

Rewrite创建1.dll

如果创建失败,则这个DLL正在运行...

如果创建成功,则DLL没有运行,那么DLL也变成0KB了,我之前复制到别的文件夹备份,然后恢复

但是觉得这个方法太2了.

有没有好的方法?遍历就算了...效率慢不老方便,或者给个效率快的代码看看?



[解决办法]
独占写方式打开这个DLL,如果能打开,没加载,否则....
[解决办法]
//伪代码

Delphi(Pascal) code
   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 文件名的方式~ 不能改就是在用... 能改就再改回来...

读书人网 >.NET

热点推荐