FindWndProc By ProcessID

  

BOOL CALLBACK MyEnumWndProc(HWND hWnd,LPARAM lParam)
{
    DWORD dwProcessId;
    GetWindowThreadProcessId(hWnd, &dwProcessId);
    LPWNDINFO pInfo = (LPWNDINFO)lParam;
    if(dwProcessId == pInfo->dwProcessId)
    {
        bool isWindowVisible = IsWindowVisible(hWnd);
        if(isWindowVisible == true)
        {
            pInfo->hWnd = hWnd;
            return FALSE;
        }

    }
    return TRUE;
}

HWND GetProcessMainWnd()
{
    WNDINFO wi;
    wi.dwProcessId = GetCurrentProcessId();
    wi.hWnd = NULL;
    EnumWindows(MyEnumWndProc,(LPARAM)&wi);
    return wi.hWnd;
} 

 

posted on 2013-03-30 17:38  All IN  阅读(153)  评论(0)    收藏  举报

导航