zoukankan      html  css  js  c++  java
  • VC 通过进程名杀掉进程

    BOOL KillProcessFromName(CString strProcessName)
    {
    //创建进程快照(TH32CS_SNAPPROCESS表示创建所有进程的快照)
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    //PROCESSENTRY32进程快照的结构体
    PROCESSENTRY32 pe;
    //实例化后使用Process32First获取第一个快照的进程前必做的初始化操作
    pe.dwSize = sizeof(PROCESSENTRY32);
    //下面的IF效果同:
    //if(hProcessSnap == INVALID_HANDLE_VALUE) 无效的句柄
    if (!Process32First(hSnapShot, &pe))
    {
    return FALSE;
    }
    //将字符串转换为小写
    strProcessName.MakeLower();
    //如果句柄有效 则一直获取下一个句柄循环下去
    while (Process32Next(hSnapShot, &pe))
    {
    //pe.szExeFile获取当前进程的可执行文件名称
    CString scTmp = pe.szExeFile;
    //将可执行文件名称所有英文字母修改为小写
    scTmp.MakeLower();
    //比较当前进程的可执行文件名称和传递进来的文件名称是否相同
    //相同的话Compare返回0
    if (!scTmp.Compare(strProcessName))
    {
    //从快照进程中获取该进程的PID(即任务管理器中的PID)
    DWORD dwProcessID = pe.th32ProcessID;
    HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessID);
    ::TerminateProcess(hProcess, 0);
    CloseHandle(hProcess);
    return TRUE;
    }
    scTmp.ReleaseBuffer();
    }
    strProcessName.ReleaseBuffer();
    return FALSE;
    }

    //使用

    KillProcessFromName("XXX.exe");

  • 相关阅读:
    Qt技巧、常用第三方库包含(qmake的.pro文件、CMakeLists.txt文件)
    STL资源
    debian 9 安装node angular
    debian 9 安装jenkins
    Consul 入门操作
    Docker 部署 postgresql 与 pgadmin4
    Docker File 与 Docker Compose
    Centos jdk
    Angular7 路由
    Centos Supervisor
  • 原文地址:https://www.cnblogs.com/waterair/p/6748388.html
Copyright © 2011-2022 走看看