Как получить список запущенных программ? - VB

Узнай цену своей работы

Формулировка задачи:

не процессов, как в Win TaskMngr не PID, а imageName. А если не через API, то еще бы лучше. Ничего не нашел, кроме нерешенной темыПроцедура получения списка всех программ и окон

Решение задачи: «Как получить список запущенных программ?»

textual
Листинг программы
' на форме List1 и кнопка
Private Declare Function GetDesktopWindow Lib "User32" () As Integer
Private Declare Function GetWindow Lib "User32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function IsWindowVisible Lib "User32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "User32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Const GW_HWNDNEXT = 2
Const GW_HWNDFIRST = 0
Const GW_OWNER = 4
Dim Wnd As Long
 
Private Sub Command1_Click()
Dim buff  As String
'Делаем буфер
buff = String(100, Chr$(0))
 
Wnd = GetWindow(Me.hwnd, GW_HWNDFIRST)
 Do While Wnd <> 0
 ' Фильтруем только окна с именами, видимые, не дочерние, не своё
 If (Wnd <> Me.hwnd) And IsWindowVisible(Wnd) And (GetWindow(Wnd, GW_OWNER) = 0) And (GetWindowText(Wnd, buff, Len(buff)) <> 0) Then
 GetWindowText Wnd, buff, Len(buff)
  List1.AddItem buff
 End If
Wnd = GetWindow(Wnd, GW_HWNDNEXT)
    Loop
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы