Как отобразить список всех запущенных программ

Ответы на вопросы, чаще всего задаваемые в форумах VBStreets. Для тех, кому лень искать.
RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Как отобразить список всех запущенных программ

Сообщение RayShade » 25.05.2004 (Вт) 11:00

(для работы примера надо поместить на форму кнопку и список)



Const TH32CS_SNAPPROCESS As Long = 2&

Const MAX_PATH As Integer = 260

Private Type PROCESSENTRY32

dwSize As Long

cntUsage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

cntThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

dwFlags As Long

szExeFile As String * MAX_PATH

End Type

Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)



Private Sub Command1_Click()

List1.Clear

Dim hSnapShot As Long

Dim uProcess As PROCESSENTRY32

Dim r As Long

hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)

If hSnapShot = 0 Then

Exit Sub

End If

uProcess.dwSize = Len(uProcess)

r = ProcessFirst(hSnapShot, uProcess)

Do While r

List1.AddItem uProcess.szExeFile

r = ProcessNext(hSnapShot, uProcess)

Loop

Call CloseHandle(hSnapShot)

End Sub

Вернуться в Популярные вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList