본문 바로가기

Windows/MFC

kill process

[code]
#include <tlhelp32.h>
#pragma comment(lib, "Psapi.lib")

VOID KillProcess(LPCSTR pszName)
{
    HANDLE hProcessSnap = NULL;
    BOOL bRet         = FALSE;
    PROCESSENTRY32 pe32 = {0};
    hProcessSnap        = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    
    if (hProcessSnap == (HANDLE)-1)
        return;
    
    pe32.dwSize = sizeof(PROCESSENTRY32);
    
    if (Process32First(hProcessSnap, &pe32))
    {
        BOOL bCurrent     = FALSE;
        MODULEENTRY32 me32 = {0};
        
        do
        {
            bCurrent = GetProcessModule(pe32.th32ProcessID, pszName);
            if(bCurrent)
            {
                HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
                if(hProcess)
                {
                    if(TerminateProcess(hProcess, 0))
                    {
                        unsigned long nCode;
                        GetExitCodeProcess(hProcess, &nCode);
                    }
                    CloseHandle(hProcess);
                }
            }
        }
        while (Process32Next(hProcessSnap, &pe32));
    }
    
    CloseHandle (hProcessSnap);
    return;
}
[/code]

'Windows > MFC' 카테고리의 다른 글

MSXML  (0) 2013.10.02
클립보드 상태 확인  (0) 2013.10.02
Edit box readonly  (0) 2013.10.02
MSVCR80D.dll error  (0) 2013.10.02
socket 포트할당시 빈포트(미사용포트) 확인방법  (0) 2013.10.02