| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1335 人关注过本帖
标题:VB如何同时获取多个类似窗体名的窗口的句柄?[转帖:www.xugogo.com]
只看楼主 加入收藏
xugogo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-10-27
收藏
 问题点数:0 回复次数:0 
VB如何同时获取多个类似窗体名的窗口的句柄?[转帖:www.xugogo.com]
GetWindow

VB声明
Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
说明
获得一个窗口的句柄,该窗口与某源窗口有特定的关系
返回值
Long,由wCmd决定的一个窗口的句柄。如没有找到相符窗口,或者遇到错误,则返回零值。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,源窗口
wCmd Long,指定结果窗口与源窗口的关系,它们建立在下述常数基础上:
GW_CHILD 寻找源窗口的第一个子窗口
GW_HWNDFIRST 为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口
GW_HWNDLAST 为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口
GW_HWNDNEXT 为源窗口寻找下一个兄弟窗口
GW_HWNDPREV 为源窗口寻找前一个兄弟窗口
GW_OWNER 寻找窗口的所有者
注解
兄弟或同级是指在整个分级结构中位于同一级别的窗口。如某个窗口有五个子窗口,那五个窗口就是兄弟窗口。尽管GetWindow可用于枚举窗口,但倘若要在枚举过程中重新定位、创建和清除窗口,那么EnumWindows和EnumChildWindows更为可靠




获取句柄不一定要用 FindWindow ,还可以枚举:
既然是一个程序运行,只是多个标题有点不同,那就找出相同点,进行判断即可
下面以记事本为例


[Copy to clipboard]CODE:
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Const GW_HWNDFIRST = 0
Private Const GW_HWNDNEXT = 2

Private Sub Command1_Click()
    Dim lngHwnd As Long, ret As Long
    Dim s As String * 255
    Dim sName As String

    lngHwnd = GetWindow(Me.hwnd, GW_HWNDFIRST)
    Do While lngHwnd
        ret = GetWindowText(lngHwnd, s, 255)
        sName = Blank(s)
        If InStr(sName, "记事本") <> 0 Then                       '这里“ www. ”替换成程序标题相同的部分
            '这里写 将句柄加入数组的相关代码
        End If
        lngHwnd = GetWindow(lngHwnd, GW_HWNDNEXT)
    Loop
End Sub

Public Function Blank(ByVal szString As String) As String
    Dim l As Integer

    l = InStr(szString, Chr(0))
    If l > 0 Then
        Blank = Left(szString, l - 1)
    Else
        Blank = szString
    End If
End Function
搜索更多相关主题的帖子: 句柄 xugogo 窗体 转帖 窗口 
2008-11-13 13:40
快速回复:VB如何同时获取多个类似窗体名的窗口的句柄?[转帖:www.xugogo.com]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028572 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved