软件注册站
热情软件屋

 
如何获得进程的程序名
编号: QA000770    
建立日期: 1999年4月7日 最后修改日期: 1999年4月10日
所属类别: C/C++ - Windows API
   
    系统:WINT9x
    开发软件VC6.0或VB6.0(主要VC)
    我已经获得了线程PROCESS,以及窗口HWND的句柄, 可否告知调用哪一个函数(winapi)获得进程的程序名(不是标题,是程序名exe)?(hanju)
   
    可以用ToolHelp函数。如下:
    其中dwProcessID是你已经得到的进程ID(如果获得的是hWnd,可以使用GetWindowThreadProcessId获得ProcessID),strExeName是该进程的执行文件名。使用ToolHelp函数对系统中所有进程遍历。要使用ToolHelp你必须加入#include <tlhelp32.h>,并链接th32.lib。
    HANDLE hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    
PROCESSENTRY32 pe;
    
    
pe.dwSize = sizeof(pe);
    
BOOL bNext=Process32First(hSnap, &pe);
    
while(bNext)
    
{
    
if(pe.th32ProcessID == dwProcessID)
    
{
    
strcpy(szBuffer, pe.szExeFile);
    
break;
    
}
    
bNext=Process32Next(hSnap, &pe);
    
}
    
CloseHandle(hSnap);
    

    但是这个程序只能在Windows 9x下和Windows 2000中运行,不能在以前的NT中运行。
    
    相关问题:
    QA000291 "如何监视Windows下运行了哪些程序"
    QA000718 "如何列出系统正在进行的程序及强行关闭该程序"

    

此问题由XuChen、李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, Windows API, win32, api, windows api, gdi32, kernel

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio