PDA

Click to See Complete Forum and Search --> : how do i retrieve a list of all current runing applications


ninorans
Mar 17th, 2001, 09:52 AM
i would like to display alist of all runing applications (like the one shown when pressing ctrl-alt-del) so i can use the names for controling those applications with FindWindow api.
thanks, nino

Mar 17th, 2001, 10:00 AM
Use the EnumWindows function.

Add to a Module.

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)
End If

EnumWindowsProc = 1
End Function


Usage: (Add to a CommandButton in a Form)

EnumWindows AddressOf EnumWindowsProc, 0


The results will be printed in the Debug window.