获取系统进程列表与终止进程
来源:互联网 发布:mac virtualbox nat 编辑:程序博客网 时间:2024/04/28 00:54
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);
}
}
}
- 获取系统进程列表与终止进程
- 系统进程信息的获取和当前进程的终止
- VC获取系统进程列表、查找进程、关闭进程
- 进程等待与终止
- Qt获取所有进程、终止某个进程
- Qt获取所有进程、终止某个进程
- 获取系统进程列表及其相关信息
- C# 获取系统当前进程列表
- VC++ 查看系统进程,获取进程关联的DLL列表
- 从系统调用fork,到进程的创建与终止
- 父子进程终止顺序与僵死进程
- linux 进程开始与终止
- 进程知识库-系统进程列表
- 获取进程列表、进程命令行、结束进程
- 终止进程
- 终止进程
- 终止进程
- 终止进程
- 使用Observer模式
- 使用Factory Method模式
- 满清雍正皇帝严惩贪官污吏的狠招(转)
- 第一篇学习笔记:《学习计划》
- 在网页中调用本地的应用程序
- 获取系统进程列表与终止进程
- 用互斥量避免程序重复运行
- Windows2000 server和windows 2003下的Apache2.0.50与Tomcat5.0.27的整合配置方法
- 关闭计算机
- 无形团队 有形管理(上)
- 利用XMLHTTP检测URL及探测服务器信息
- 无形团队 有形管理(下)
- XMLHTTP异步的例子
- VMWare中Red Hat 9鼠标不好用的解决方法