我要使用SendMessageTimeout函数。必须知道主窗体的hwnd,现在我知道了进程的handle,怎么得到主窗体的hwnd?????????

解决方案 »

  1.   

    我通过CreateToolhelp32Snapshot遍历了整个进程,我想通过某进程的  HANDLE获取其对应主窗体的HWND,如何办?请高手指教。  
    ---------------------------------------------------------------  
     
    EnumWindows(EnumWindowsProcGetWndTitle,0);            //得到所有窗口列表  
     
    void  EnumWindowsProcGetWndTitle(hWnd,lparam)  
    {  
               DWORD  ProcID  =  0;  
               GetWindowThreadProcessId(hWnd,&ProcID);  
               if(ProcID==YourProcID)//如果窗口的processid等于你的ID  
               {  
                           HWND  pWnd  =  GetParent(hWnd);  
                           while(GetParent(pWnd)!=NULL)//得到父窗口的句柄  
                                       pWnd  =  GetParent(pWnd);  
                           //ok    pWnd  就是主窗口了。  
               }  
    }
      

  2.   

    hWnd是指的什么?YourProcID是什么,是不是进程HANDLE?
      

  3.   

    hwnd is the top-level window is enumerated
    YourProcID is your process id