프로세스 구하기/kill하기

|
프로세스 구하기
[code]
        CString tmp;
        HANDLE hProcessSnap;
        PROCESSENTRY32 pe32;

        hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
        if(hProcessSnap == INVALID_HANDLE_VALUE)
        {
                MessageBox("CreateToolhelp32Snapshot (of  processes) ");
                return false;
        }

        pe32.dwSize = sizeof(PROCESSENTRY32);

        if(!Process32First(hProcessSnap, &pe32))
        {
                MessageBox("Error:Process32First");
                CloseHandle(hProcessSnap);
                return false;
        }

        do
        {
                tmp.Format("%s : 0x%08X",pe32.szExeFile,pe32.th32ProcessID);
                //CString tmp에 파일명 : PID형식으로 저장됨.
        }while(Process32Next(hProcessSnap,&pe32));
        CloseHandle(hProcessSnap);

[/code]
프로세스 죽이기

[code]
        HANDLE process;
        DWORD PID;
        CString tmp;
        PID = //PID. Unsigned long        
        process = OpenProcess(PROCESS_TERMINATE,0,PID);
        if(TerminateProcess(process,(unsigned)-1))
                MessageBox("Killed PID : "+tmp);
        else
                MessageBox("Failed.");

[/code]

'Knowledge > C/C++/VC++' 카테고리의 다른 글

레지스트리 접근  (0) 2007.05.04
파일 열기/저장 공용 다이얼로그  (0) 2007.05.04
Win32 플랫폼 버전 확인  (0) 2007.05.04
MFC ListView_GetCheckState(SetCheckState)버그  (0) 2007.05.04
URL(File) Drag&Drop  (0) 2007.05.04
And