查找进程名为ClsMn.exe的所有线程下的所有TPUtilWindow类的子窗口句柄,并显示相关的信息,请问怎么实现?

解决方案 »

  1.   

    先 找到TPUtilWindow的句并
    MyHandle:=Findwindow(nil,TPutilWindow)
    然后用EnumChildWindows
      

  2.   

    EnumChildWindows函数怎么用啊?能给段代码吗?
      

  3.   

    The EnumChildWindows function enumerates the child windows that belong to the specified parent window by passing the handle of each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE. BOOL EnumChildWindows(    HWND hWndParent, // handle to parent window
        WNDENUMPROC lpEnumFunc, // pointer to callback function
        LPARAM lParam  // application-defined value
       );
     ParametershWndParentIdentifies the parent window whose child windows are to be enumerated. lpEnumFuncPoints to an application-defined callback function. For more information about the callback function, see the EnumChildProc callback function. lParamSpecifies a 32-bit, application-defined value to be passed to the callback function.  Return ValuesIf the function succeeds, the return value is nonzero.
    If the function fails, the return value is zero. ResThe EnumChildWindows function does not enumerate top-level windows owned by the specified window, nor does it enumerate any other owned windows. 
    If a child window has created child windows of its own, this function enumerates those windows as well. 
    A child window that is moved or repositioned in the Z order during the enumeration process will be properly enumerated. The function does not enumerate a child window that is destroyed before being enumerated or that is created during the enumeration process. This function is more reliable than calling the GetWindow function in a loop. An application that calls GetWindow to perform this task risks being caught in an infinite loop or referencing a handle to a window that has been destroyed. See AlsoEnumChildProc, EnumThreadWindows, EnumWindows, GetWindow
      

  4.   

    The EnumThreadWindows function enumerates all nonchild windows associated with a thread by passing the handle of each window, in turn, to an application-defined callback function. EnumThreadWindows continues until the last window is enumerated or the callback function returns FALSE. To enumerate child windows of a particular window, use the EnumChildWindows function. This function supersedes the EnumTaskWindows function. BOOL EnumThreadWindows(    DWORD dwThreadId, // thread identifier
        WNDENUMPROC lpfn, // pointer to callback function
        LPARAM lParam  // application-defined value
       );
     ParametersdwThreadIdIdentifies the thread whose windows are to be enumerated. lpfnPoints to an application-defined callback function. For more information about the callback function, see the EnumThreadWndProc callback function. lParamSpecifies a 32-bit, application-defined value to be passed to the callback function.  Return ValuesIf the function succeeds, the return value is nonzero.
    If the function fails, the return value is zero. See AlsoEnumChildWindows, EnumThreadWndProc, EnumWindows