Windows下C++实现杀死某一个进程

Windows下C++实现杀死某一个进程的做法

#include
#include
#include

BOOL KillProcessByName(LPCWSTR strProcessName)  //传入进程名
{
    if (NULL == strProcessName)
    {
        return FALSE;
    }
    HANDLE oHandle32Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (INVALID_HANDLE_VALUE == oHandle32Snapshot)
    {
        return FALSE;
    }

    PROCESSENTRY32W oEntry;
    oEntry.dwSize = sizeof( PROCESSENTRY32W );

    if (Process32FirstW(oHandle32Snapshot, &oEntry))
    {
        BOOL bFound = FALSE;
        if (!_wcsicmp(oEntry.szExeFile, strProcessName))
        {
            bFound = TRUE;
        }
        while ((!bFound) && Process32NextW(oHandle32Snapshot, &oEntry))
        {
            if (!_wcsicmp(oEntry.szExeFile, strProcessName))
            {
                bFound = TRUE;
            }
        }
        if (bFound)
        {
            CloseHandle(oHandle32Snapshot);
            HANDLE oHandLe =  OpenProcess(PROCESS_TERMINATE , FALSE, oEntry.th32ProcessID);
            if (oHandLe != NULL)
            {
                BOOL bResult = TerminateProcess(oHandLe,0);
                CloseHandle(oHandLe);
                return bResult;
            }
         }
    }

    if (oHandle32Snapshot != NULL)
    {
        CloseHandle(oHandle32Snapshot);
    }

    return FALSE;
}

你可能感兴趣的:(C++,c++)