遍历windows窗口控件

我们要做的事有两个:
(1)遍历/查找 windows 窗口
(2)遍历windows窗口里的所有控件

FindWindowEx :

HWND FindWindowEx(
  HWND hwndParent, // handle to parent window
  HWND hwndChildAfter, // handle to child window
  LPCTSTR lpszClass, // class name
  LPCTSTR lpszWindow // window name
  );

参数:
(1)hwndParent:要查找子窗口的父窗口句柄。如果hwndParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。

(2)hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndParent窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。

(3)lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。

(4)lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。

FindWindow :

HWND FindWindow(
  LPCSTR lpClassName,
  LPCSTR lpWindowName
  );

参数:
(1)lpClassName : 指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。如果该参数为null时,将会寻找任何与lpWindowName参数匹配的窗口。
  
(2)lpWindowName : 指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。

3 days ago, this page was being read.

,

Subscribe to Comments