• 进程(WINAPI),遍历并查找树状的进程信息,实现控制系统进程


    #include <TlHelp32.h>
    //检索系统全部进程
    void showall()
    {
    	PROCESSENTRY32 pe32 = {0};
    	pe32.dwSize = sizeof(pe32);
    	//查找进程
    	HANDLE hpprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//CreateToolhelp32Snapshot创建快照
    	BOOL bmore = Process32First(hpprocess,&pe32);//查找
    	while (bmore)
    	{
    		printf("%-25s  %d
    ",pe32.szExeFile,pe32.th32ParentProcessID);
    		bmore=Process32Next(hpprocess, &pe32);
    	}
    }
    //通过进程名来关闭
    void close(char *name)
    {
    	PROCESSENTRY32 pe32 = { 0 };//进程快照
    	pe32.dwSize = sizeof(pe32);//设置机构体大小
    	HANDLE hpprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    	BOOL bmore = Process32First(hpprocess, &pe32);
    	while (bmore)
    	{
    		printf("%s    %d
    ", pe32.szExeFile, pe32.th32ParentProcessID);
    		if (!strcmp("FsCapture.exe", pe32.szExeFile) )
    		{
    			puts("
    
    find,存在该进程!");
    			HANDLE hpro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);//打开进程
    			TerminateProcess(hpro, 0);//结束线程    注意此处
    		}
    		bmore = Process32Next(hpprocess, &pe32);
    	}
    	printf("
    不存在此进程!
    ");
    }
    //通过进程编号来关闭
    void closebyid(unsigned long id)
    {
    	PROCESSENTRY32 pe32 = { 0 };//进程快照
    	pe32.dwSize = sizeof(pe32);//设置机构体大小
    	HANDLE hpprocess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    	BOOL bmore = Process32First(hpprocess, &pe32);//寻找
    	//找全部的进程
    	while (bmore)
    	{
    		if (id==pe32.th32ProcessID)
    		{
    			puts("find");
    			HANDLE hpro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ParentProcessID);//打开进程
    			TerminateProcess(hpro, 0);
    		}
    		bmore = Process32Next(hpprocess, &pe32);
    	}
    }
    void main()
    {
    	printf("进程名			进程编号
    ");
    	showall();
    	close("FsCapture.exe");//通过进程名来结束进程
    	closebyid(4356);//通进程编号来结束进程
    	getchar();
    }

  • 相关阅读:
    深入浅出RxJava
    android 图像处理系列合集
    WebView·开发指南
    LocalBroadcastManager 的实现原理,Handler还是 Binder?
    TCP协议中的三次握手和四次挥手(图解)
    Android进程保活
    Android只能动态注册的广播Action
    WakeLock, AlarmManager, JobScheduler
    jQuery验证控件jquery.validate.js使用说明+中文API
    IntelliJ IDEA的自动提示貌似是区分大小写的,首字母小写的话,怎么都提示不出来。
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7183183.html
Copyright © 2020-2023  润新知