Nope, but here's a Function I wrote a few months ago to do it:
In a Module:
Code:
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Private Declare Function GetTopWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Const GW_HWNDNEXT = 2
Public Function FindWindowWild(ByVal lHWnd As Long, ByVal sTitle) As Long
Dim sString As String * 255
Dim sFound As String
If lHWnd = 0 Then lHWnd = GetTopWindow(0)
Do
lHWnd = GetNextWindow(lHWnd, GW_HWNDNEXT)
Call GetWindowText(lHWnd, sString, 255)
sFound = Left(sString, InStr(sString, Chr(0)) - 1)
Loop While lHWnd And Not (LCase(sFound) Like LCase(sTitle))
FindWindowWild = lHWnd
End Function
Example:
Code:
Private lFindHwnd As Long
Private Sub cmdFindFirst_Click()
Dim sString As String * 255
lFindHwnd = FindWindowWild(0, Text1)
Call GetWindowText(lFindHwnd, sString, 255)
Text2 = Left(sString, InStr(sString, Chr(0)) - 1)
End Sub
Private Sub cmdFindNext_Click()
Dim sString As String * 255
lFindHwnd = FindWindowWild(lFindHwnd, Text1)
Call GetWindowText(lFindHwnd, sString, 255)
Text2 = Left(sString, InStr(sString, Chr(0)) - 1)
End Sub