用CreateToolhelp32Snapshot、Process32First、Process32Next将系统的所有进程枚举出来,然后在将进程所引用的模块枚举出来,然后给你要卸载的对比,对比一致的列出来
解决方案 »
- 如何获得右键弹出窗口句柄
- MFC 二进制文件读写问题,在线等~~
- 简单智力题,好像是图论应用,大家帮帮忙,定结贴,谢谢
- 请问怎样用vc读写excel中的数据?
- 一个Edit Box数据更新的问题
- 如何以最简单的方法将RecordSet中的第i条记录插入另一个表(两个表结构相同)?
- 在VC中如何用自定义控件(custom control)?
- 已有点C++基础,如何学好VC,MFC好难哦。。。
- 如何限制HeaderCtrl的某列的宽度?
- gdi编程,在一张图片上面有几个矩形,矩形坐标大小未知,如何确定鼠标所在的矩形??
- 原本编译通过的代码增加了对话框编译不过且去掉还是编译不过
- Unicode下char型数组转换CString问题
BOOL CPNConfigApp::GetProcessID(CString ProcessName, DWORD &hProcID, DWORD &ParentID)
{
int con=0;
CString str;
PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);
// 获得系统内所有进程快照
HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
// 出错
return FALSE;
}
// 枚举列表中的第一个进程
BOOL bProcess=Process32First(hProcessSnap,&pe32);
while(bProcess)
{
str=pe32.szExeFile;
// 比较进程名,找到要找的进程名
if(ProcessName.CompareNoCase(str)==0)
{
con++; // 进程数加1
}
// 继续查找
bProcess=Process32Next(hProcessSnap,&pe32);
}
CloseHandle(hProcessSnap);
if(con>1)
return TRUE; // 进程已经启动
else
return FALSE; // 进程没有启动
}
请问:CreateToolhelp32Snapshot这个函数,能够找出64位应用程序吗?还是只能找出32位应用程序?
枚举进程 ID ,加入到listctrl 中可以了.