CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

已知一个进程的ProcessID,如何得到ExeFileName?

楼主BirDEY()2003-02-04 11:54:38 在 VC/MFC / 进程/线程/DLL 提问

我现在是用进程快照CreateToolhelp32Snapshot,然后一个一个判断与指定的ProcessID是否相等,这样的话可能要遍历所有的进程。我觉得这个方法的效率比较低,有没有更好一些的方法? 问题点数:20、回复次数:8Top

1 楼titi_lima(titilima(李马)的马甲.net)回复于 2003-02-04 12:34:38 得分 10

你可以用OpenProcess取得进程句柄,然后使用GetModuleFileName取得exe文件名。Top

2 楼BirDEY()回复于 2003-02-04 23:37:25 得分 0

请问如何由Process   handle得到hmodule?Top

3 楼kingcom_xu(冷羽)回复于 2003-02-04 23:43:51 得分 10

http://www.csdn.net/develop/Read_Article.asp?Id=3073可以借鉴Top

4 楼kingcom_xu(冷羽)回复于 2003-02-04 23:45:16 得分 0

回复人:   BirDEY()   (   )   信誉:100     2003-02-04   23:37:00     得分:0    
     
     
      请问如何由Process   handle得到hmodule?  
       
     
  -----------  
  用GetModuleFileNameEx吧Top

5 楼BirDEY()回复于 2003-02-05 10:46:25 得分 0

多谢了,但还有一些问题。  
  DWORD   GetModuleFileNameEx(  
      HANDLE   hProcess,         //   handle   to   the   process  
      HMODULE   hModule,         //   handle   to   the   module  
      LPTSTR   lpFilename,     //   buffer   that   receives   the   path  
      DWORD   nSize                   //   size   of   the   buffer  
  );  
  hProcess用Process的handle,但我并不知道hModule啊。用NULL吗?  
  另外我看msdn.microsoft.com中这个函数的例子,好像是包括在psapi.h中的,但我没有这个include文件。我用的是vc6.0Top

6 楼kingcom_xu(冷羽)回复于 2003-02-05 11:23:21 得分 0

是,就是用null,你可以去下载最新的SDK...  
  但win9x下没有这个函数...  
  你可以用http://www.csdn.net/develop/Read_Article.asp?Id=3073中的方法Top

7 楼qrlvls( 空 气 )回复于 2003-02-07 20:44:26 得分 0

多谢了,但还有一些问题。  
  DWORD   GetModuleFileNameEx(  
      HANDLE   hProcess,         //   handle   to   the   process  
      HMODULE   hModule,         //   handle   to   the   module  
      LPTSTR   lpFilename,     //   buffer   that   receives   the   path  
      DWORD   nSize                   //   size   of   the   buffer  
  );  
  hProcess用Process的handle,但我并不知道hModule啊。用NULL吗?  
  另外我看msdn.microsoft.com中这个函数的例子,好像是包括在psapi.h中的,但我没有这个include文件。我用的是vc6.0  
  Top

8 楼BirDEY()回复于 2003-02-08 09:36:47 得分 0

我使用的是win2000啊,不过还是多谢kingcom的解答。Top

相关问题

  • 又是一个菜鸟问题,知道一个进程的HANDLE,怎样得到它的ProcessId?
  • 得到了机器里面所有的进程的ProcessID,我想关掉里面的某一个,应该怎么作了?不要告诉我用sendmessage,呵呵:)
  • ■■■ 请问怎么根据进程名得到进程ID?谢谢 ■■■
  • 如何根据进程ID得到进程句柄?
  • 请问怎么根据进程句柄得到进程名
  • 如何通过进程名得到进程ID?
  • 如何通过进程句柄得到进程id?
  • 如何通过进程句柄得到进程ID?
  • 高手请进:如何得到一个进程的进程号?
  • 怎样得到进程个数??

关键词

  • .net
  • 函数
  • hmodule
  • 进程
  • getmodulefilenameex
  • 多谢
  • hprocess
  • handle
  • 得到
  • process

得分解答快速导航

  • 帖主:BirDEY
  • titi_lima
  • kingcom_xu

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo