以下是引用次次在2006-10-28 20:43:12的发言:
#include <tlhelp32.h>
void CTestView::OnRButtonDown(UINT nFlags, CPoint point)
{
CString StrInfo="系统当前进程包括:\n";
int nProcess =0;
HANDLE snapshot=CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0) ;
if(snapshot == NULL)return ;
SHFILEINFO shSmall;
PROCESSENTRY32 processinfo ;
processinfo.dwSize=sizeof(processinfo) ;
BOOL status=Process32First(snapshot,&processinfo) ;
while (status)
{
ZeroMemory(&shSmall, sizeof(shSmall));
SHGetFileInfo(processinfo.szExeFile,0,&shSmall,sizeof(shSmall),SHGFI_ICON|SHGFI_SMALLICON);
StrInfo+=processinfo.szExeFile;
StrInfo+="\n";
status = Process32Next (snapshot, &processinfo) ;
nProcess++;
}
MessageBox(StrInfo,"信息提示",MB_OK);
CView::OnRButtonDown(nFlags, point);
}
这个在windows核心编程上有的啊
呵呵,你理解错了。。。。
不过仍然要谢谢你。。。
这些代码我是知道。。。
我的问题是:当执行这些代码的过程中,若有一个程序来一个shellExecute之类的调用时(也就是正在遍历上面的循环时)突然系统中又增加了一个进程,那么这个进程是否能被查出来呢?还是暂时阻止对它的调用呢?