我写一了个DLL,并用CreateRemoteThread的方式注入到Explorer.exe中。DLL可以正常工作。可是我现在想终止这个DLL的线程。我试过在DLL中直接
CloseHandle\ExitThread\TerminateThread,因为我的DLL载入时会显示一个窗体,用到上述三个中任何一个时,我都可以看到我的窗体已经消失不见了。应该来说,DLL这个线程已经被终止掉了。可是我试着重新编译、删除、重命名那个DLL时,系统提示DLL正在使用中....有什么解决的方法?急盼回复。多谢
CloseHandle\ExitThread\TerminateThread,因为我的DLL载入时会显示一个窗体,用到上述三个中任何一个时,我都可以看到我的窗体已经消失不见了。应该来说,DLL这个线程已经被终止掉了。可是我试着重新编译、删除、重命名那个DLL时,系统提示DLL正在使用中....有什么解决的方法?急盼回复。多谢
解决方案 »
- 如何在目标机器上弹出对话框,要求输入密码或刷卡,验证通过后,本机可进行下一步操作?
- 我下载了一个16*16的字库,通过区位码怎样读里面的点阵内容
- 在线等一个ClientSocket出错处理
- timer组件延时问题.非高手无入!
- 利用向导创建MDI应用程序框架后,有一个功能是:创建一个子窗体时Windows菜单下会自动添加对应于本子窗体的菜单项,但是为什么在生成的源
- 有没有可以滚动显示的label控件?
- 关于记录的分页问题!(在线等待)
- ☆★☆★☆★☆★MSSQL的表记录中有一字段记录全是CHAR(10)型的8位数字,我想在所有记录前加“34”,总共4000条,如何一下全改变☆★☆
- 为什么现在招聘Delphi程序员的公司越来越少呢?
- 关于 OICQ模式 的问题。
- 请教怎样在应用程序服务器端监控客户端的行为!请大家给个好的思路!
- 如何屏蔽TWebBrowser的Ctrl+N键
如果有人给个完美的答案。这两张贴的两百分都是他的。急盼。
然后在任务管理器中重新启动"explorer.exe"
if dwProcessID=0 then begin
ShowMessage('Can not get the process ID');
exit;
end; hProcess := 0;
hProcess := OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID);//打开进程 if hProcess=0 then begin
ShowMessage('Can not Open the process!');
exit;
end; try
UnLoadDllFromProcess(hProcess, hMod, bOK);//释放DLL;
ShowMessage(Format('UnLoad, Module Handle : %X, BOK: %X', [hMod, DWORD(bOK)]));
finally
CloseHandle(hProcess);
hMod := 0;
end;
我就是想知道这个hMod是怎么来的。