QQ登录

只需一步,快速开始

获取全部进程终止指定进程--上位机VC

[ 复制链接 ]

获取全部进程终止指定进程--上位机VC

获取全部进程终止指定进程--上位机VC

获取全部进程终止指定进程--上位机VC
功能展示
操作系统默认都带有一个任务管理器,可以查看当前运行的程序并对程序进行关闭等操作,当前例程也实现获取系统运行中全部进程,对指定进程关闭功能,效果如图。点击<获取全部进程 >可将运行中的全部进程显示出来,点击<终止指定进程>可将鼠标选择的进程关闭
要点提示
例程中对运行中的全部进程的获取可结合函数CreateToolhelp32Snapshot() Process32First()Process32Next()实现;
对指定进程进行关闭可结合函数OpenProcess()TerminateProcess()实现;
实现功能
1.新建基于对话框的应用程序

2.拖拽一列表控件,关联变量CListCtrl  m_list; 添加两按钮<获取全部进程><终止指定进程>关联按钮的点击函数,实现按钮对应的功能
  1. #include <tlhelp32.h>
  2. void CGkbc8Dlg::OnGet()
  3. {
  4.         m_list.DeleteAllItems();//清空行
  5.         while(m_list.DeleteColumn(0));//清空列
  6.         m_list.ModifyStyle(0,LVS_REPORT);//设置报表显示
  7.         m_list.InsertColumn(0,"进程ID",LVCFMT_LEFT,80);//插入列
  8.         m_list.InsertColumn(1,"进程名称",LVCFMT_LEFT,150);


  9.         HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);        
  10.         PROCESSENTRY32* info=new PROCESSENTRY32;
  11.     info->dwSize=sizeof(PROCESSENTRY32);
  12.     int i=0;
  13.         if(Process32First(handle,info))
  14.         {
  15.                 if(GetLastError()==ERROR_NO_MORE_FILES )
  16.                 {
  17.                         AfxMessageBox("No More Process");
  18.                 }
  19.                 else
  20.                 {
  21.                         CString id;
  22.                         id.Format("%d",info->th32ProcessID);
  23.                         
  24.                         m_list.InsertItem(i,id);
  25.                         m_list.SetItemData(i,info->th32ProcessID);
  26.                         id.Format("%s",info->szExeFile);
  27.                         m_list.SetItemText(i,1,id);
  28.                         i++;
复制代码
  1. while(Process32Next(handle,info)!=FALSE)
  2.                         {
  3.                                 id.Format("%5d",info->th32ProcessID);
  4.                         
  5.                         m_list.InsertItem(i,id);
  6.                         m_list.SetItemData(i,info->th32ProcessID);
  7.                         id.Format("%s",info->szExeFile);
  8.                         m_list.SetItemText(i,1,id);
  9.                         i++;
  10.                         }
  11.                 }
  12.         }
  13.    CloseHandle(handle);
  14. }
  15. void CGkbc8Dlg::OnButton2()
  16. {
  17.         POSITION pos;
  18.         pos=m_list.GetFirstSelectedItemPosition();
  19.         int select=m_list.GetNextSelectedItem(pos);
  20.     HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,TRUE,m_list.GetItemData(select));
  21.         if(h!=NULL)
  22.         {
  23.                 TerminateProcess(h,0);
  24.         }
  25.         OnGet();//刷新列表显示
  26. }
复制代码
我们来演示下功能实现的整个过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:获取全部进程终止指定进程--上位机VC.rar 
文件大小:202.19 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索