• 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");

  • 相关阅读:
    vue脚手架项目配置后端接口(mock数据)
    list添加删除动画(transition-group)
    fast mock官网mock数据
    vuex日志插件(createLogger)
    环形进度条
    程序员的周末生活
    hbase错误之Region in transition异常解决
    不同虚拟机之间的文件传递
    windows上链接虚拟机
    hadoop——yarn
  • 原文地址:https://www.cnblogs.com/waterair/p/6748388.html
Copyright © 2020-2023  润新知