HANDLE --> HWND

How can I convert a 'HANDLE' (retrieved from CreateProcess) to a 'HWND' or a 'CWnd *' ?

My application has launched an other application (Netmeting) with 'CreateProcess' and I want to minimize or not this application.

Can someone help me ?
mike_marquetAsked:
Who is Participating?
 
jkrConnect With a Mentor Commented:
You can use a 'EnumWindowsProc()' in the following way:

// globals:
HWND    g_hwnd;


    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory  (   &si,    sizeof  (   STARTUPINFO));

    if  (   CreateProcess   (   "netmeeting.exe",...))  //  notepad is running
        {
            g_hwnd  =   NULL;

            EnumWindows (   FindCreatedTask,    ( LPARAM) pi.dwProcessId));

            // ...

            // if 'g_hwnd' is not NULL, we found it...
        }

// ...

BOOL CALLBACK FindCreatedTask( HWND hwnd, LPARAM lParam)
{
    DWORD   dwPID2Find  =   ( DWORD) lParam;
    DWORD   dwPID       =   0;

    if  (   GetWindowThreadProcessId    (   hwnd,   &dwPID))
        {
            if  (   dwPID   ==  dwPID2Find)
                {
                    g_hwnd  =   hwnd;

                    return  (   FALSE);
                }
        }

    return  (   TRUE);
}

0
 
mike_marquetAuthor Commented:
Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.