工控编程吧
标题:
222上位机VC MFC获取系统运行中全部程序
[打印本页]
作者:
qq263946146
时间:
2016-2-28 12:34
标题:
222上位机VC MFC获取系统运行中全部程序
(, 下载次数: 0)
上传
点击文件名下载附件
222上位机VC MFC获取系统运行中全部程序
功能展示
我们打开资源管理器软件都可以看到当前系统在运行的程序,我们当前例程也实现当前系统运行程序的获取与显示,我们可根据自己的程序开发需求,进一步对获取的程序进行操作,效果如图,点击<获得系统运行中全部程序>按钮,可将全部运行中程序实现罗列在列表框中;
要点提示
系统中运行的程序可以使用函数Process32First()Process32Next()组合实现;process32First 是一个进程获取函数,当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用process32First函数来获得第一个进程的句柄;
BOOL WINAPI Process32First( HANDLE hSnapshot, LPPROCESSENTRY32 lppe);
typedef struct tagPROCESSENTRY32 {
DWORD dwSize; // 结构大小;
DWORD cntUsage; // 此进程的引用计数;
DWORD th32ProcessID; // 进程ID;
DWORD th32DefaultHeapID; // 进程默认堆ID;
DWORD th32ModuleID; // 进程模块ID;
DWORD cntThreads; // 此进程开启的线程计数;
DWORD th32ParentProcessID;// 父进程ID;
LONG pcPriClassBase; // 线程优先权;
DWORD dwFlags; // 保留;
WCHAR szExeFile[MAX_PATH]; // 进程全名;
} PROCESSENTRY32;
此函数往往和函数Process32Next(HandlehsnapShot,LPPROCESSENTRY32 lppe)
搭配使用,用来枚举当前系统快照相关的所有进程。
实现功能
1.新建基于对话框的应用程序
2.拖拽一按钮控件关联函数
void CGkbc8Dlg::OnGet()
{
CListCtrl *pListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST1);
HANDLE toolhelp=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(toolhelp==NULL)
return ;
PROCESSENTRY32 processinfo;
int i=0;
CString str;
BOOL bContinue=Process32First(toolhelp,&processinfo);
while(bContinue)
{
pListCtrl->InsertItem(i,"");
pListCtrl->SetItemText(i,0,processinfo.szExeFile);
str.Format("%08x",processinfo.th32ProcessID);
pListCtrl->SetItemText(i,1,str);
str.Format("%08x",processinfo.th32ParentProcessID);
pListCtrl->SetItemText(i,2,str);
bContinue=Process32Next(toolhelp,&processinfo);
i++;
}
}
复制代码
拖拽一列表控件ID为IDC_LIST1用于显示系统运行中全部程序
3.在对话框初始函数OnInitDialog()中对列表框控件初始化
CListCtrl *pListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST1);
pListCtrl->ModifyStyle(0,LVS_REPORT,0);
pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES);
pListCtrl->InsertColumn(0,"进程",LVCFMT_LEFT,150,0);
pListCtrl->InsertColumn(1,"ID",LVCFMT_CENTER,75,1);
pListCtrl->InsertColumn(2,"父进程",LVCFMT_CENTER,75,2);
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/00e90cf2e8a7694fa9268227ceb084ba/0/0/w_19rszra1sl.swf-albumId=5382498809-tvId=5382498809-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4