您的位置:首页 > 编程语言 > C语言/C++

win平台 C语言-进程管理

2016-07-14 01:17 375 查看
想对来说,win平台上的进程管理比linux上简单很多。

#include <TlHelp32.h>

void showall()
{
PROCESSENTRY32 pe32={0}; //进程
pe32.dwSize = sizeof(pe32); //设置机构体大小
HANDLE hprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //创建当前进程快照
BOOL bmore = Process32First(hprocess, &pe32); //寻找, 通过指针改变外部变量

while(bmore)
{
printf("%s,%d", pe32.szExefile, pe32.th32ParentProcessID);

bmore = Process32Next(hprocess, &pe32); //查找下一个
}
// 编号为0的是系统进程

CloseHandle(hprocess);
}

void close(char *name)
{
PROCESSENTRY32 pe32 = {0}; //进程
pe32.dwSize = sizeof(pe32); //设置机构体大小
HANDLE hprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //创建当前进程快照
BOOL bmore = Process32First(hprocess, &pe32); //寻找, 通过指针改变外部变量

while(bmore)
{
if (strcmp(pe32.szExefile, name) == 0)
{
// 打开进程
HANDLE hpro = OpenProcess(PROCESSS_ALL_ACCESS, FALSH, pe32.th32ProcessID);
// 结束进程

TerminateProcess(hpro, 0);
CloseHandle(hpro);
break ;
}
bmore = Process32Next(hprocess, &pe32); //查找下一个
}
CloseHandle(hprocess);
}

void closebyid(unsigned long id)
{
PROCESSENTRY32 pe32 = {0}; //进程
pe32.dwSize = sizeof(pe32); //设置机构体大小
HANDLE hprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //创建当前进程快照
BOOL bmore = Process32First(hprocess, &pe32); //寻找, 通过指针改变外部变量

while(bmore)
{
if (pe32.th32ProcessID == id)
{
// 打开进程
HANDLE hpro = OpenProcess(PROCESSS_ALL_ACCESS, FALSH, pe32.th32ProcessID);
// 结束进程

TerminateProcessId(hpro, 0);
CloseHandle(hpro);
break ;
}
bmore = Process32Next(hprocess, &pe32); //查找下一个
}
CloseHandle(hprocess);
}

void main()
{
showall();

close("QQ.exe");
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 管理 进程