win平台 C语言-进程管理

想对来说,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");
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值