2进程控制--遍历进程--创建进程--打开进程--

1.对于已经存在的进程需要通过OpenProcess函数打开该进程
并获取该进程的句柄创建进程 

//1.创建系统进程快照
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//内核对象加一
//返回当前进程快照的句柄
//2.获取第一个进程信息
BOOL bMore = Process32First(hProcessSnap, &pc);
//获取其余进程信息
while(bMore)
{
printf("进程ID:%d\n"
, pc.th32ProcessID);
printf("进程名称:%s\n"
, pc.szExeFile);
bMore = Process32Next(hProcessSnap, &pc);
}
3.关闭系统进程快照
CloseHandle(hProcessSnap);//计数减一,这个程序不用这个内核了

进程快照就是当前系统中正在运行的所有进程列表

2.打开进程

对于已经存在的进程需要通过OpenProcess函数打开该进程
并获取该进程的句柄。

HANDLE OpenProcess(
//获取权限,PROCESS_ALL_ACCESS
DWORD dwDesiredAccess,
BOOL bInheritHandle, 
//指定句柄是否可以继承
DWORD dwProcessId
 //打开进程的ID
);

进程控制--终止当前进程

 进程中一个线程调用了ExitProcess函数

 其它进程中的一个线程调用了TerminateProces

如何关闭其他的进程?先获取句柄后关闭

//打开进程,获取句柄
HANDLE hHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwId);
if(hHandle != NULL)
{
//终止进程
TerminateProcess(hHandle, 0);
}
//关闭句柄
CloseHandle(hHandle);

进程控制—获取退出代码

BOOL GetExitCodeProcess(
HANDLE hProcess, //进程句柄
PDWORD pdwExitCode //进程的退出代码
);

猜你喜欢

转载自blog.csdn.net/yonggandess/article/details/88944141