ResumeProcess /SuspendProcess の代用

Windows 2000には ResumeProcess / SuspendProcess がありません。

int WINAPI SuspendProcess(int pid)
{    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, pid);
    THREADENTRY32 lpte;
    lpte.dwSize=sizeof(lpte);
    int ret = Thread32First(snapshot, &lpte);
    while(rett){
        if(pid==lpte.th32OwnerProcessID)
        {
            HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, false, lpte.th32ThreadID);
            printf("PID: %d ", lpte.th32OwnerProcessID);
            printf("TID: %d\n", lpte.th32ThreadID);
            SuspendThread(hThread);
            CloseHandle(hThread);
        }
        rett = Thread32Next(snapshot, &lpte);
    }
    CloseHandle(snapshot);
}

要するに、プロセス内のスレッド全部をサスペンド、もしくはレジュームしてしまう関数を作ればよいわけです・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です