获取系统进程列表与终止进程

原创 2004年08月11日 16:46:00

1.定义结构体PROCESSENTRY32并初始化其成员dwsize
PROCESSENTRY32 proc;proc.dwsize=sizeof(PROCESSENTRY32);
2.用GreateToolhelp32Snapshot(DWORD dwFlags,//TH32CS_SNAPPROCESS或TH32CS_SNAPTHREAD
DWORD th32ProcessID);//可为0
函数返回一个进程句柄:
HANDLE hSysSnapshot=CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
3.用Process32First ( HANDLE hSnapshot,
PROCESSENTRY32 *proc )
函数获取结构体PROCESSENTRY32个成员的值;由其成员szExeFile返回可执行文件路径,
由其成员th32ProcessID返回进程ID。
4.调用函数Process32Next()作的(3)步相同的处理。
5.关闭句柄CloseHandle(hSysSnapshot);

终止进程:

1. 用进程ID用OpenProcess()函数打开进程,返回进程句柄。
2.用函数TerminateProcess()终止进程。
3.关闭句柄。

//代码:
//定义两个数组用来保存进程ID和对应的文件名
#include<TLHELP32.H>
CString ProcFileName[30];
long ProcID[30];
//列表所有进程
void ListProcess(CString procFileName[],LONG procID[])
{
HANDLE hSysSnapshot = NULL;
PROCESSENTRY32 proc;
proc.dwSize = sizeof(proc);
hSysSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
if ( hSysSnapshot == (HANDLE)-1 )
return;
if ( Process32First ( hSysSnapshot, &proc ) )
{
proc.dwSize = sizeof(proc);
int nProcCount=0;
do
{
ProcFileName[nProcCount]=CString(proc.szExeFile);
ProcessID[nProcCount]=proc.th32ProcessID;
nProcCount++;
}
while ( Process32Next (hSysSnapshot, &proc));
}
CloseHandle(hSysSnapshot);
}

//终止指定ID号的进程
void Killproc(int nProcID)
{
if(nProcID)
{
HANDLE hProc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,nProcID);
if(hProc)
{ TerminateProcess(hProc,99);
CloseHandle(hProc);
}
}
}

Qt获取所有进程、终止某个进程

Qt获取所有进程、终止某个进程方法一:QProcess process; process.start("tasklist.exe"); if(process.waitForFinished()) { ...
  • jin_huan11
  • jin_huan11
  • 2016年08月10日 23:32
  • 5238

Windows核心编程(四)进程的创建与终止

1、进程是资源和分配的基本单位,而进程内核对象就是与进程相关联的一个数据结构。操作系统内核通过它管理进程,即进程控制块(PCB)。 进程一般被定义为一个正在运行的程序的一个实例,它由两部分组成: ...
  • woshibendangao
  • woshibendangao
  • 2014年03月23日 14:31
  • 1258

VC获取系统进程列表、查找进程、关闭进程

PROCESSENTRY32 pe32;     pe32.dwSize=sizeof(pe32);     HANDLE hProcessSnap=::CreateToolhelp32Snaps...
  • milanleon
  • milanleon
  • 2014年06月20日 10:53
  • 2176

MFC获取系统的进程及列表控件使用

  • 2012年03月20日 14:11
  • 32KB
  • 下载

获取系统中的进程列表(win 32 SDK)

获取系统中进程列表 在DOS操作系统下,一个程序可以读写系统中的所有内存,所以可以方便地修改任何地方的代码和数据 ,不管这些代码和数据是不是自己所有的,另外,程序可以自由存取所有的寄存器,...
  • luoshao20120430
  • luoshao20120430
  • 2013年01月22日 12:04
  • 1141

MFC获取系统的进程及列表控件使用

源代码:http://download.csdn.net/detail/nuptboyzhb/4156430 获取进程的步骤: 主要应该一下函数: CreateToolhelp32Snapsho...
  • NUPTboyZHB
  • NUPTboyZHB
  • 2012年03月20日 14:23
  • 4088

Windows系统进程列表完全解析

  • 2009年10月25日 00:12
  • 29KB
  • 下载

常用系统进程列表.txt

  • 2011年09月04日 19:55
  • 16KB
  • 下载

系统信息—显示进程列表系统设备已安装程序.

  • 2013年04月26日 20:07
  • 7.31MB
  • 下载

获取其他进程的列表内容

  • 2011年04月25日 14:36
  • 131KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取系统进程列表与终止进程
举报原因:
原因补充:

(最多只允许输入30个字)