• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

能够查询本机所有的进程中,哪些进程中调用了特定的动态链接库

d2000j 2004-12-28 05:22:30
请高手简单讲讲 编这个程序:“能够查询本机所有的进程中,哪些进程中调用了特定的动态链接库”的思路和方法,多谢了,急!~
...全文
83 点赞 收藏 2
写回复
2 条回复
ccrun.com 2004年12月31日
在Form上添加两个ListBox,一个Button,然后添加以下代码:

#include "tlhelp32.hpp"
//===========================================================================
// 获取当前所有进程
void __fastcall MyGetAllProcess(TStrings *pList)
{
String strExeFile;
char szBuf[256];

pList->Clear();

PROCESSENTRY32 pe32 = {sizeof(pe32)};
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapShot == NULL)
return;
bool bFlag = Process32First(hSnapShot, &pe32);
while(bFlag)
{
strExeFile = AnsiString(pe32.szExeFile);
if(strExeFile.Pos("\\") != 0)
strExeFile = ExtractFileName(pe32.szExeFile);
pList->AddObject(strExeFile, (TObject *)pe32.th32ProcessID);
bFlag = Process32Next(hSnapShot, &pe32);
}
CloseHandle(hSnapShot);
}
//===========================================================================
// 获取指定进程所调用模块的信息
bool __fastcall MyGetAllModule(DWORD dwProcessID, TStrings *pList)
{
pList->Clear();

MODULEENTRY32 me32 = {sizeof(MODULEENTRY32)};
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessID);
if(hSnapShot == NULL)
return false;
bool bFlag = Module32First(hSnapShot, &me32);
if(!bFlag)
return false;
while(bFlag)
{
pList->AddObject(me32.szExePath, (TObject *)me32.th32ModuleID);
bFlag = Module32Next(hSnapShot, &me32);
}
CloseHandle(hSnapShot);
return true;
}
//---------------------------------------------------------------------------
// 点击Button以后将当前所有进程列在ListBox1中
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MyGetAllProcess(ListBox1->Items);
}
//---------------------------------------------------------------------------
// 点击ListBox的一个进程,在ListBox2中列出该进程调用的所有模块
// 注:如果要获取系统级进程的调用模块,需要提升本进程的调试级别
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
int nIndex = ListBox1->ItemIndex;
if(nIndex < 0)
return;
MyGetAllModule((DWORD)ListBox1->Items->Objects[nIndex], ListBox2->Items);
}
//---------------------------------------------------------------------------
回复 点赞
CityHost 2004年12月30日
帮你顶
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2563

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告