win平台 C语言-进程管理
2016-07-14 01:17
441 查看
想对来说,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 语言程序(二)
- 如何写好 C main 函数
- 【DevOps】为什么我们永远疲于奔命?
- 网络管理之IP地址篇
- 文件的读出 编辑 管理
- C#实现进程管理的启动和停止实例
- DOS中判断进程是否存在的方法
- Lua和C语言的交互详解
- C#进程监控方法实例分析
- SQL Server 2008 R2 应用及多服务器管理
- 批处理 结束麦咖啡进程的代码
- PowerShell查看进程的所属用户
- C#实现强制关闭当前程序进程
- C#实现读取被进程占用的文件实现方法
- C#获取进程或线程相关信息的方法
- 简单掌握Windows中C#启动外部程序进程的方法
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解