网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
根据进程processid得到该进程的可执行文件名
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式


M 作 者: z_h_q_2000(★龙飞虎★) 2001-06-01 20:06:01 :0 :0    
[回复] [打包] [转贴]  
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;

而在NT系统中由于不支持toolhelp api,故
#include "psapi.hpp"

假使process id是 pid 的话:

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,pid);
if( NULL != hProcess )
  {
  HMODULE hMod;
  DWORD cbNeeded;
  if( EnumProcessModules( hProcess, &hMod, sizeof( hMod ), &cbNeeded ) )
    {
    char buf[MAX_PATH+1]="";
    if(GetModuleBaseName( hProcess, hMod,buf,sizeof buf)>0)
      //  
      // buf放的就是名字
      //
    }
  CloseHandle(hProcess);
  }
(注意该程序运行需要psapi.dll,所以要copy到别的机器上运行时需连同该文件一起拷贝。当然如果装了delphi或者c++ builder就不需要了)

  • 上一篇资讯: Delphi编程中的“流”
  • 下一篇资讯: 用Delphi编写DelTree程序
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号