社区
Delphi
帖子详情
高分悬赏100!怎样列出WINDOWS系统内存中在使用的所有.DLL名?怎么从中卸掉一个.DLL?
BCB
2001-02-05 09:04:00
解决必定给分!如果提示能部分解决也给分!
...全文
188
11
打赏
收藏
高分悬赏100!怎样列出WINDOWS系统内存中在使用的所有.DLL名?怎么从中卸掉一个.DLL?
解决必定给分!如果提示能部分解决也给分!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BCB
2001-02-05
打赏
举报
回复
60分当然给你TechnoFantasy了,等这个问题完了给!
FreeLibrary只释放自已进程的.DLL,人家的可能就不行了;
强行卸掉某进程的DLL,这个进程变得不稳定了,釜底抽薪吗
TechnoFantasy
2001-02-05
打赏
举报
回复
每一个Module都有一个局柄,利用FreeLibrary试一下,刊可不可以释放,获得
DLL局柄的方法在上面我提供的源程序中有(那60分给谁了 :-))
www.applevb.com
BCB
2001-02-05
打赏
举报
回复
还有40分!
若强行杀掉一个.exe,它的私有.DLL就自动释放了,
若单独强行卸掉某进程的某一个.DLL,API怎么做?
BCB
2001-02-05
打赏
举报
回复
#include <vcl.h>
#pragma hdrstop
#include "ListUnit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
#include <tlHelp32.h>
int ProcessID[1024]; // 存放进程标识号
void __fastcall TForm1::Button1Click(TObject *Sender)
{ // 显示进程列表
HANDLE ProcessListHandle=
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
// 产生进程列表句柄
ListBox1->Items->Clear();
int i=0;
PROCESSENTRY32 ProcessStruct;
ProcessStruct.dwSize=sizeof(ProcessStruct);
int yn=Process32First(ProcessListHandle,
&ProcessStruct);
while (yn!=0)
{
ProcessID[i++]=ProcessStruct.th32ProcessID;
ListBox1->Items->Add(ProcessStruct.szExeFile);
yn=Process32Next(ProcessListHandle,&ProcessStruct);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ // 强行中止进程
int i=ListBox1->ItemIndex;
if (i!=-1)
{
int pID=ProcessID[i];
HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,true,pID);
DWORD ExitCode;
GetExitCodeProcess(h,&ExitCode); // 取中止码
TerminateProcess(h,ExitCode); // 强行中止
Sleep(100); // 延时100ms
Button1->Click(); // 重新列表
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button1->Click();
}
int ModuleID[1024]; // 存放DLL标识号
void __fastcall TForm1::Button3Click(TObject *Sender)
{ // 显示某进程的所有DLL名
int i=ListBox1->ItemIndex;
if (i!=-1)
{
int pID=ProcessID[i]; // 列这个进程的DLL名
HANDLE ModuleListHandle=
CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pID);
ListBox2->Items->Clear();
int j=0;
MODULEENTRY32 ModuleStruct;
ModuleStruct.dwSize=sizeof(ModuleStruct);
int yn=Module32First(ModuleListHandle,
&ModuleStruct);
while (yn!=0)
{
ModuleID[j++]=ModuleStruct.th32ModuleID;
ListBox2->Items->Add(ModuleStruct.szExePath);
yn=Module32Next(ModuleListHandle,&ModuleStruct);
}
}
}
to TechnoFantasy:
非常感谢,我之前只能列.exe,不能列.dll,原来我未掌握关键,现在明白了,
先给你60分,
下一个问题未完,怎样卸掉一个.DLL???请继续邦忙!!!
TechnoFantasy
2001-02-05
打赏
举报
回复
代码:http://www.applevb.com/sourcecode/moudle.zip
可以获得系统中内存中的DLL
www.applevb.com
BCB
2001-02-05
打赏
举报
回复
分不会少的
是VB站点
TechnoFantasy
2001-02-05
打赏
举报
回复
既然没解决问题,就不用给了,到我的竹叶看看,支持一下就可以了
www.applevb.com
BCB
2001-02-05
打赏
举报
回复
FreeLibraryAndExitThread
参数中的线程句柄与退出码没法知道,也不行,
就算了,明天给分就结束!已经很满意了
TechnoFantasy
2001-02-05
打赏
举报
回复
还有一个办法,就是安装一个内存释放软件,然后利用函数察看工具看它使用了
那些API
TechnoFantasy
2001-02-05
打赏
举报
回复
那么这个呢?
FreeLibraryAndExitThread
BCB
2001-02-05
打赏
举报
回复
FreeLibrary()好象无效,结果返回总是0,说明不成功
22年全国职业院校技能大赛《网络
系统
管理》-
Windows
模块赛题讲解
本课程为您全方位解读2022年全国职业院校技能大赛《网络
系统
管理》的B模块...更重要的是,我们针对复杂的解题步骤进行了简化,旨在在保证得分的同时,提高解题效率,确保您在比赛
中
能够在有限的时间内取得
高分
。
计算机丢失oleaut32
dll
,无法启动文件OLEAUT32.
DLL
无法启动文件OLEAUT32.
DLL
启动所有的文件都出现这样的提示 是个老电脑,98
系统
愿意出
高分
悬赏
哦 !更新时间:2019-10-23 09:39最满意答案这种情况多数是IE的动态链接库文件oleaut32.
dll
损坏所造成的,重新注册这个...
计算机
中
丢失等d3dx9,Win10 提示"计算机丢失d3dx9_43.
dll
"怎么办_Win10镜像之家...
d3dx9_43.
dll
是什么?Win10
系统
提示"计算机丢失d3dx9_43.
dll
"怎么办?在Win10
系统
电脑
中
,有时会出现某些...d3dx9_43.
dll
文件丢失只是
Windows
系统
中
特有的错误,一般都是在
系统
尝试启动
高分
辨率图形时容易出现错误。下...
因计算机丢失php5.
dll
,quilib.
dll
丢失是什么原因造成的
quilib.
dll
丢失是电脑里的quilib.
dll
文件丢失了,一般是
系统
原因导致的,修复的方法:首先用户可以打开电脑管家;然后打开后点击工具箱选项;接着点电脑诊所;最后选择丢失软件,打开后点击立即恢复即可。电脑提示...
计算机提示msvcp120.
dll
怎么解决,7种详细有效修复方法分享
在这些不为人知的角色
中
,有
一个
名
为msvcp120.
dll
的文件,它是Visual C++运行时库的一部分,对于确保许多应用程序的正常运行至关重要。这个文件对于
使用
了C++标准库的应用程序来说是必不可少的。代码共享:正如前文...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章