需要查找的窗口的 标题 是这样的
##%-AABBCCDD
其中'##'部分为变化的数字
'-AABBCCDD'为不变的部分
请问
怎么使用 FindWindowEx 或 FindWindow 模糊查询这样的窗口 
谢谢

解决方案 »

  1.   

    FindWindow不能模糊查找,你可以用EnumWindow遍历窗口然后进行判断
      

  2.   

    使用 EnumWindow 效率会不会太低呀
    因为要实时监控的
      

  3.   

    用EnumWindow效率肯定比FindWindow要低得多,但是我想不到其他办法。
      

  4.   

    先用SPY++得到窗口类,这样可以减小你搜索的范围,甚至某些情况下,该窗口类名比较特殊,只有你运行的那个指定程序才具有。
    写一个函数:(循环检测)
    1、搜索遍所有窗口类为该值的窗口(建议用FINDWINDOWEX函数),
    2、每发现一个时,利用所得的HWND使用GETWINDOWTEXT函数获取该窗口标题,
    3、用INSTR函数检测该标题中是否含有-AABBCCDD字样,如果含有那么这个句柄就是你想要的
    给你一段示例:
    '获取含指定字符窗口句柄
    Public Function mGetWindow(ByVal cName As String, ByRef fText As String) As Long
        Dim myStr As String * 255
        Dim strLen As String
        Dim bWnd As Long
        Dim bWndback As Long
        strLen = Len(myStr)
        bWndback = 0
        Do
        DoEvents
        '获取子窗口标志
        bWnd = FindWindowEx(0, bWndback, cName, vbNullString)
        'List1.AddItem bWnd
        If bWnd <> 0 Then
        '获取子窗口标题
            GetWindowText bWnd, myStr, strLen
            myStr = Trim(myStr)
            If InStrRev(myStr, fText) Then
                mGetWindow = bWnd
                Exit Do
            End If
        Else
            Exit Do
            mGetWindow = 0
        End If
        bWndback = bWnd
        Loop
    End Function
    参数cname是窗口类名,当然,如果你不指定也可以,传入vbnullstring,ftext是窗口标题的部分内容(-AABBCCDD);以上函数只返回一个窗口就退出了。