作者:绿色风
分类:
时间:2022-08-17
浏览:133
楼主 0Mouse |
Q:如何获取桌面所有一级子窗口的句柄和标题文本呢? A:使用API函数GetWindow先获取第一个子窗口句柄,再通过循环枚举其它子窗口,代码如下:
- Private Declare Function GetDesktopWindow Lib "user32" () As Long
- Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
- Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
- (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
-
- Private Const GW_CHILD = 5
- Private Const GW_HWNDNEXT = 2
- Sub 获取桌面所有一级子窗口的句柄和标题文本()
- Dim hWnd As Long
- Dim iNum As Long
- Dim lpStr As String * 256
- Dim lgh As Long
- hWnd = GetWindow(GetDesktopWindow, GW_CHILD) '取得第1个子窗口句柄
- Do '循环枚举
- If hWnd = 0 Then Exit Do '句柄为0时结束循环
- iNum = iNum + 1 '子窗口计数
- Cells(iNum, 1) = iNum '记录子窗口序号
- Cells(iNum, 2) = hWnd '记录子窗口句柄
- lgh = GetWindowText(hWnd, lpStr, 255) '获取窗口标题文本的长度
- Cells(iNum, 3) = Left(lpStr, lgh) '记录子窗口标题文本
- hWnd = GetWindow(hWnd, GW_HWNDNEXT) '查找下一个子窗口
- Loop
- End Sub
附件:
获取桌面所有一级子窗口的句柄和标题文本.rar |
2楼 335081548 |
谢谢分享 |
3楼 老糊涂 |
学习 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一