在得到进程中一个module句柄或者进程句柄的情况下,如何得到该进程是由哪个exe执行,高手请赐教!(200分)

  • 主题发起人 主题发起人 VoodooBoy
  • 开始时间 开始时间
V

VoodooBoy

Unregistered / Unconfirmed
GUEST, unregistred user!
在得到进程中一个module句柄或者进程句柄的情况下,如何得到该进程是由哪个exe执行
创建的,nt下可以用psapi解决,9x下呢?
高手请赐教!
 
Hubdog葵花宝典上的这篇文章也许可以解决你的问题,这个是遍历系统进程,显示其可执行文件名称。
uses tlhelp32;
procedure TForm1.Button1Click(Sender: TObject);
var
pe:PROCESSENTRY32;
me:MODULEENTRY32;
hp,hm:Thandle;
b,b1:boolean;
begin
hp:=CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);
pe.dwSize:=SizeOf(pe);
b:=Process32First(hp,pe);
while b do
begin
hm:=CreateToolHelp32SnapShot(TH32CS_SNAPModule,pe.th32ProcessID);
me.dwSize:=sizeof(ModuleEntry32);
if Module32First(hm,me) then
begin
b1:=Module32First(hm,me);
while b1 do
begin
if me.th32ModuleID=pe.th32ModuleID then
listbox1.Items.Add(me.szExePath);
b1:=Module32Next(hm,me);
end;
end;
b:=Process32Next(hp,pe);
end;
end;

 
我也刚刚在msdn上翻到tool help function搞定了。
不过分还是要给的!!!:)
 
实际上根本不像上面的例子麻烦,用不着循环的!
 
接受答案了.
 
对呀,上面的是遍历所有进程,然后得出所有进程的名称呀。
所以比较麻烦,是我比较懒,没有改,直接就搬上来了[:D]
 
后退
顶部