Is it possible to obtain the all handles of the child windows of the active window (window in focus) in the desktop ?
Printable View
Is it possible to obtain the all handles of the child windows of the active window (window in focus) in the desktop ?
"FindWindowEx" api call does return handle all windows includng the child windows. Use this api call to collect all the hwnd's. Use the "GetParent" Api call to know which window is a child of the currently active window.
Hi , can you show me the code because i am new to api programming . :)
Quote:
Originally posted by amitabh
"FindWindowEx" api call does return handle all windows includng the child windows. Use this api call to collect all the hwnd's. Use the "GetParent" Api call to know which window is a child of the currently active window.
Sorry. I am on a computer wich doesnot have VB and will not be on one until the next couple of days.
Look at www.vbapi.com/ref/f/findwindowex.html and www.allapi.net for futher refrence. vbapi.com has some excellent tutorials on using api in VB. If you are new to api's, you can stick to what Vlatko has written.
Add to a Module.
Add to a FormCode:Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim Length As Long
Dim sName As String
Dim Temp As String
Static iCount As Integer
iCount = iCount + 1
Length = GetWindowTextLength(hwnd) + 1
If Length > 1 Then
sName = Space(Length)
GetWindowText hwnd, sName, Length
Debug.Print Left(sName, Length - 1) & " - " & hWnd
End If
EnumWindowsProc = 1
End Function
Code:Private Sub Command1_Click()
EnumWindows AddressOf EnumWindowsProc, 0
End Sub