СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Как получить список открытых программ?

Ответ

  Получение заголовков всех запущенных приложений.

Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Const GW_HWNDFIRST = 0
Public Const GW_HWNDLAST = 1
Public Const GW_HWNDNEXT = 2
Public Const GW_HWNDPREV = 3
Public Const GW_OWNER = 4
Public Const GW_CHILD = 5

  Использование: Поместите на форму объекты ListBox1 и CommandButton1. В модуле формы поместите следующий код:

Private Sub Command1_Click()
  Dim hwnd&
  Dim dummy&
  Dim strCaption$

  List1.Clear
 ' Рабочий стол — самое первое окно
  hwnd& = GetDesktopWindow()
 ' Первое дочернее окно — окно первого уровня
  hwnd& = GetWindow(hwnd&, GW_CHILD)
 ' Теперь получим заголовки окон всех уровней
  Do
     dummy& = GetWindowTextLength(hwnd&)
     If dummy <> 0 Then
       strCaption = String(dummy + 1, " ")
       dummy = GetWindowText(hwnd&, strCaption, dummy + 1)
       List1.AddItem strCaption
     End If

     hwnd& = GetWindow(hwnd&, GW_HWNDNEXT)
  Loop While hwnd& <> 0
End Sub

Ivan



Copyright © 2000-2004 Сообщество Чайников
Контактная информация