我们先来看看PROCESSENTRY32
typedefstructtagprocessentry 32 {
DWORD dwSize; //结构大小
DWORD cntUsage; //此进程的引用数;
DWORD th32ProcessID; //进程ID;
DWORD th32DefaultHeapID; //进程的默认堆ID
dword th32模块id; //进程模块ID;
DWORD cntThreads; //此进程打开的线程数;
DWORD th32ParentProcessID; //父进程ID;
长pcpriclassbase; //线程优先级
DWORD dwFlags; //保留
char szExeFile[MAX_PATH]; //进程的全名
} PROCESSENTRY32;
//包含头文件:
#include 'tlhelp32.h '
//例如:
添加//listbox控件并关联CListBox的m_ListBox变量; 添加按钮OnButton1;
添加void的OnGetProcess方法
voidcxxxdlg :3360 ongetprocess (
{
m_ListBox.ResetContent (;
CString m_output;
HANDLE hProcessSnap=NULL;
PROCESSENTRY32 pe32={0};
hprocess snap=create toolhelp 32 snapshot (th32cs _ snap process,0 );
hprocess snap=(handle (-1 ) ) (if ) ) ) ) ) ) ) ) ) )。
{
:3360messagebox(null,'查询过程失败! (、“错误消息”、MB_OK );
}
pe32.dwsize=sizeof (process entry 32;
进程32第一个(hprocess snap,pe32 ) (if )
{
do
{
m _ output.format (“%-20 sid : %-5d”,pe32.szExeFile,pe32.th32ProcessID );
m_listbox.addstring(m_output;
}
wile (process 32 next (hprocess snap,pe32 ) );
}
else
{
:messagebox(null,'发生意外错误!' 、“错误消息”、MB_OK;
}
closehandle(hprocesssnap;
}
void CXXXDlg:OnButton1()
{
OnGetProcess (;
}
运行一下,进程名ID哈哈、