 |
系统: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。
|
| |
|
| |
|
| |
|
|