|

分享源码
界面截图: |
- |
是否带模块: |
- |
备注说明: |
- |
非常简单实用的代码,贴出来,方便搜索,使用GetWindow,采集桌面所有窗口/子窗口句柄。
API
HWND GetWindow(HWND hWnd,int nCmd)
HWND GetDesktopWindow(void)
DWORD GetWindowThreadProcessId(HWND nWnd,LPDWORD lpdwProcessId)
int GetClassNameA(HWND hWnd, LPSTR lpClassName,int nMaxCount)
int GetWindowTextA(HWND hWnd,LPSTR lpString,int nMaxCount)
常量
.常量 GW_CHILD, "5"
.常量 GW_HWNDNEXT, "2"
.常量 MAX_PATH, "260"
代码:
变量名 | 类 型 | 静态 | 数组 | 备 注 | 查找结果 | 整数型 | | 0 | 结果数 | 整数型 | | |
结果数 = 枚举窗口_ (GetDesktopWindow (), 4820, “Internet Explorer_Server”, 字符 (0 ), 真, 查找结果 ) 返回 (0 ) |
枚举窗口_ | 整数型 | | |
起始句柄_ | 整数型 | | | | 进程ID_ | 整数型 | | | | 类名_ | 文本型 | | | | 标题_ | 文本型 | | | | 完全查找_ | 逻辑型 | | | | 结果数组_ | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 子句柄 | 整数型 | | | 结果 | 整数型 | | | 句柄所属进程ID | 整数型 | | | 句柄类名 | 文本型 | | | 句柄标题 | 文本型 | | |
如果真 (进程ID_ = 0 且 类名_ = 字符 (0 ) 且 标题_ = 字符 (0 )) 返回 (0 )句柄类名 = 取空白文本 ( #MAX_PATH )句柄标题 = 取空白文本 ( #MAX_PATH ) 如果真 (起始句柄_ ≠ 0 ) 子句柄 = GetWindow (起始句柄_, #GW_CHILD ) 判断循环首 (子句柄 ≠ 0 )  结果 = 枚举窗口_ (子句柄, 进程ID_, 类名_, 标题_, 完全查找_, 结果数组_ )  如果真 (结果 ≠ 0 )  返回 (结果 ) GetWindowThreadProcessId (子句柄, 句柄所属进程ID) GetClassNameA (子句柄, 句柄类名, #MAX_PATH ) GetWindowTextA (子句柄, 句柄标题, #MAX_PATH )  判断 (句柄所属进程ID ≠ 0 且 类名_ ≠ 字符 (0 ) 且 标题_ ≠ 字符 (0 ))    如果真 (句柄所属进程ID = 进程ID_ 且 句柄类名 = 类名_ 且 句柄标题 = 标题_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )           判断 (句柄所属进程ID ≠ 0 且 类名_ ≠ 字符 (0 ) 且 标题_ = 字符 (0 ))    如果真 (句柄所属进程ID = 进程ID_ 且 句柄类名 = 类名_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )           判断 (句柄所属进程ID ≠ 0 且 类名_ = 字符 (0 ) 且 标题_ ≠ 字符 (0 ))    如果真 (句柄所属进程ID = 进程ID_ 且 句柄标题 = 标题_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )           判断 (句柄所属进程ID = 0 且 类名_ ≠ 字符 (0 ) 且 标题_ ≠ 字符 (0 ))    如果真 (句柄类名 = 类名_ 且 句柄标题 = 标题_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )           判断 (句柄所属进程ID = 0 且 类名_ = 字符 (0 ) 且 标题_ ≠ 字符 (0 ))    如果真 (句柄标题 = 标题_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )           判断 (句柄所属进程ID = 0 且 类名_ ≠ 字符 (0 ) 且 标题_ = 字符 (0 ))    如果真 (句柄类名 = 类名_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )           判断 (句柄所属进程ID ≠ 0 且 类名_ = 字符 (0 ) 且 标题_ = 字符 (0 ))    如果真 (句柄所属进程ID = 进程ID_ )    判断 (完全查找_ )    加入成员 (结果数组_, 子句柄 )    返回 (子句柄 )                子句柄 = GetWindow (子句柄, #GW_HWNDNEXT ) 判断循环尾 ()返回 (取数组成员数 (结果数组_))
|
|