YJX基础65 进程管理

//先把工程unicode转成多字节字符

// 关闭进程B.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"
#include <windows.h>    //为了用 DWORD OpenProcess 等
#include<tlhelp32.h>    //为了调用 CreateToolhelp32Snapshot函数


BOOL myKillProcess(DWORD ProcessId);
DWORD GetProcessID(const char *ProcessName);

int main()
{
    printf_s("进入main \n");
    system("PAUSE");

    DWORD killtarget;                //目标进程ID
    killtarget = GetProcessID("QQgamebeta2.exe");
    printf_s("获取进程ID结束========================================= \n");
    system("PAUSE");

    myKillProcess(killtarget);
    printf_s("结束进程结束========================================= \n");

    system("PAUSE");
    //::getchar();
    return 0;
}

//下面是第一个网站找到的函数 但是用不了 需要进程的ID
BOOL myKillProcess(DWORD ProcessId)
{
    HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
    if (hProcess == NULL)
    { 
        printf_s("未找到进程 \n");
    }
        //return FALSE;
    if (!TerminateProcess(hProcess, 0))
        printf_s("未能关闭进程 \n");
        //return FALSE;
    return TRUE;
}

DWORD GetProcessID(const char *ProcessName)
{
    PROCESSENTRY32 pe32;

    pe32.dwSize = sizeof(PROCESSENTRY32);

    //获取进程快照
    HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
    {
        printf("CreateToolhelp32Snapshot 调用失败.\n");
        return -1;
    }

    //遍历进程快照,轮流显示每个进程的信息
    BOOL bMore = ::Process32First(hProcessSnap, &pe32);
    while (bMore)
    {
        printf_s("进程名称:%s \n", pe32.szExeFile); 
        printf_s("进程ID:%u \n", pe32.th32ProcessID);
        if (lstrcmp(pe32.szExeFile, ProcessName) == 0)    //相等返回0 小于返回负数 大于返回正数
        {
            printf_s("======找到进程ID 是%u  ==========\n", pe32.th32ProcessID);
            break;
        }

        bMore = ::Process32Next(hProcessSnap, &pe32);
    }

    //不要忘记清除掉snapshot对象
    ::CloseHandle(hProcessSnap);

    

    return pe32.th32ProcessID;
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值