kill process

来源:互联网 发布:淘宝官网网站 编辑:程序博客网 时间:2024/05/21 06:03

    DWORD pid;
    HWND hwnd123 = FindWindowEx(NULL, NULL,NULL, _T("On-Screen Keyboard"));

    GetWindowThreadProcessId(hwnd123, &pid);
    ///////////kill////////////
    DWORD bOKToKill = FALSE;
    SendMessageTimeout(hwnd123, WM_QUERYENDSESSION, 0, 0, SMTO_ABORTIFHUNG|SMTO_NOTIMEOUTIFNOTHUNG, 100, &bOKToKill);
    if (bOKToKill)
        return FALSE;  // window doesn't want to die: abort
    PostMessage(hwnd123, WM_CLOSE, 0, 0);

    // I've closed the main windows; now wait for process to die.
    BOOL bKilled = TRUE;
    HANDLE hp=OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE,FALSE,pid);
    if (hp) {
        if (WaitForSingleObject(hp, 5000) != WAIT_OBJECT_0)
        {
            TerminateProcess(hp,0);
        }
        CloseHandle(hp);
    }

原创粉丝点击