while(1){ AfxMessageBox("开始一轮");
HANDLE hSnapShot = NULL;
BOOL reboot = 1;//重启标志位
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获取当前进程快照
PROCESSENTRY32 prosInfo;//定义PROCESSENTRY32结构
prosInfo.dwSize = sizeof(prosInfo);//设置PROCESSENTRY32结构大小
BOOL bStatus = Process32First(hSnapShot, &prosInfo);//获得第一个进程的句柄
while(bStatus){
CString scTmp = prosInfo.szExeFile;//获得进程全名
scTmp.MakeUpper();//将csTmp字符串转为大写
AfxMessageBox(scTmp);//显示进程名称
bStatus = Process32Next(hSnapShot, &prosInfo);
if(scTmp != "IPMSG.EXE"){
bStatus = Process32Next(hSnapShot, &prosInfo);//获得下一个进程的句柄
}
}
CloseHandle(hSnapShot);//关闭快照
AfxMessageBox("本轮结束");
}
这是一个简单的进程查看程序,请教各位高手,我的问题是,我运行本程序,在第一轮快结束的时候,我打开另外一个程序(例如飞鸽传书:IPMSG.exe),但是在第二轮,第三轮等等之后我都看不到有IPMSG.exe的显示,这是为什么呢?
解决方案 »
- matlab的RGB值与VC读取的RGB值不同
- 如何在word中显示自定义的ole对象?
- 紧急求教!
- 请教:这个语句是什么意思?LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
- MFC里异常一问
- 建立socket后 收完信息就死掉了 怎么办?
- 关于CEdit框默认选择的情况
- http://www.codeguru.com/doc_view/dynamicsdi.html
- set<string> insert元素的编译错误,没有搞懂,请帮忙解答下,多谢。
- MFC中获取分割视区指针问题?
- 我在一个现有active控件上进行修改,我想改变控件的CLASSID,我在odl文件里改了uuid,但是还是不行,一调用还是调用原来的控件
- 求助,ListContorl 如何实现列名居中而列的内容居左显示??
你已经获取了进程的快照,但是这个时候,你所谓的另外的程序并没有发生。由于快照就是一个”静态“的
:即保存了当前的进程。它不会发生变化。
要先关闭!
这其实是windows设计中的一个小小遗憾,请参照《undocument windows security》。