Public Const MAX_PATH = 260
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount 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
Public Function fEnumWindowsCallBack(ByVal hwnd As Long, ByVal lpData As Long) As Long
Dim lResult As Long
Dim sWndName As String
Dim sClassName As String
Dim objFileSys As Object, objTextFile As Object
fEnumWindowsCallBack = 1
sClassName = Space$(MAX_PATH)
sWndName = Space$(MAX_PATH)
lResult = GetClassName(hwnd, sClassName, MAX_PATH)
sClassName = Left$(sClassName, lResult)
lResult = GetWindowText(hwnd, sWndName, MAX_PATH)
sWndName = Left$(sWndName, lResult)
If sWndName <> "" Then
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFileSys.OpenTextFile("c:\windows\temp\temptext.txt", 8, True)
objTextFile.Write "Caption: " & sWndName & vbCrLf & "Class:" & sClassName & vbCrLf & vbCrLf
objTextFile.Close
End If
End Function
Public Sub fEnumWindows()
Dim hwnd As Long
Call EnumWindows(AddressOf fEnumWindowsCallBack, hwnd)
Shell "notepad " & "c:\windows\temp\temptext.txt", vbNormalFocus
Kill "c:\windows\temp\temptext.txt"
End Sub