Страница: 1 |
А скачай ProcessExplorer и смотри, там всякого интересного валом. Держи, от сердца отрываю, а точнее от своей программы, которой посвящен сайт, который всегда видно над моими ответами: VERSION 5.00 Begin VB.Form frmProcesses BorderStyle = 1 'Fixed Single Caption = "Список активных процессов" ClientHeight = 3630 ClientLeft = 45 ClientTop = 330 ClientWidth = 9480 BeginProperty Font Name = "Tahoma" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Icon = "frmProcesses.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 242 ScaleMode = 3 'Pixel ScaleWidth = 632 ShowInTaskbar = 0 'False StartUpPosition = 1 'CenterOwner Begin VB.CommandButton cmdHelp Caption = "Справка" Height = 375 Left = 7800 TabIndex = 21 Top = 3120 Width = 1575 End Begin VB.Frame Frame1 Caption = "Информация о процессе" Height = 2415 Left = 6120 TabIndex = 4 Top = 120 Width = 3255 Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Идентификатор кучи:" Height = 255 Index = 8 Left = 120 TabIndex = 20 Top = 1080 Width = 2100 End Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Флаги:" Height = 255 Index = 7 Left = 120 TabIndex = 19 Top = 2040 Width = 2100 End Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Приоритет:" Height = 255 Index = 6 Left = 120 TabIndex = 18 Top = 1800 Width = 2100 End Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Идентификатор модуля:" Height = 255 Index = 5 Left = 120 TabIndex = 17 Top = 840 Width = 2100 End Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Исп. процессора (:" Height = 255 Index = 4 Left = 120 TabIndex = 16 Top = 1320 Width = 2100 End Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Число нитей:" Height = 255 Index = 2 Left = 120 TabIndex = 15 Top = 1560 Width = 2100 End Begin VB.Label Label11 Alignment = 1 'Right Justify Caption = "Родительский процесс:" Height = 255 Index = 1 Left = 120 TabIndex = 14 Top = 600 Width = 2100 End Begin VB.Label lblCaption Alignment = 1 'Right Justify Caption = "Идентификатор процесса:" Height = 255 Index = 9 Left = 120 TabIndex = 13 Top = 360 Width = 2100 End Begin VB.Label lbl5 Height = 255 Left = 2400 TabIndex = 12 Top = 1080 Width = 735 End Begin VB.Label lbl9 Height = 255 Left = 2400 TabIndex = 11 Top = 2040 Width = 735 End Begin VB.Label lbl8 Height = 255 Left = 2400 TabIndex = 10 Top = 1800 Width = 735 End Begin VB.Label lbl4 Height = 255 Left = 2400 TabIndex = 9 Top = 840 Width = 735 End Begin VB.Label lbl6 Height = 255 Left = 2400 TabIndex = 8 Top = 1320 Width = 735 End Begin VB.Label lbl7 Height = 255 Left = 2400 TabIndex = 7 Top = 1560 Width = 735 End Begin VB.Label lbl3 Height = 255 Left = 2400 TabIndex = 6 Top = 600 Width = 735 End Begin VB.Label lbl2 Height = 255 Left = 2400 TabIndex = 5 Top = 360 Width = 735 End<
Продолжение, за один раз все не вместилось: Begin VB.CommandButton cmdTerminate Caption = "Завершить" Height = 375 Left = 6120 TabIndex = 3 Top = 3120 Width = 1575 End Begin VB.CommandButton cmdRefresh Caption = "Обновить" Height = 375 Left = 6120 TabIndex = 2 Top = 2640 Width = 1575 End Begin VB.CommandButton cmdOK Cancel = -1 'True Caption = "OK" Default = -1 'True Height = 375 Left = 7800 TabIndex = 1 Top = 2640 Width = 1575 End Begin VB.ListBox lstProcs Appearance = 0 'Flat BackColor = &H00000000& BeginProperty Font Name = "Courier New" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 3390 ItemData = "frmProcesses.frx":000C Left = 120 List = "frmProcesses.frx":000E TabIndex = 0 Top = 120 Width = 5895 End End Attribute VB_Name = "frmProcesses" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim p(1000) As PROCESSENTRY32, nop As Long Private Sub cmdTerminate_Click() Dim hProcess As Long hProcess = OpenProcess(&H1F0FFF, 1, p(lstProcs.ListIndex).lProcessId) TerminateProcess hProcess, 0 Sleep 200 cmdRefresh_Click End Sub Private Sub lstProcs_DblClick() On Error Resume Next Dim SelectedProcess As String, PathToFile As String SelectedProcess = lstProcs.List(lstProcs.ListIndex) PathToFile = Left(SelectedProcess, InStrRev(SelectedProcess, "\") - 1) ShellExecute 0, "open", PathToFile, "", "", 1 End Sub Private Sub lstProcs_KeyUp(KeyCode As Integer, Shift As Integer) On Error Resume Next If lstProcs.ListIndex > -1 Then ShowPTips (lstProcs.ListIndex) End Sub Private Sub lstProcs_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) On Error Resume Next If lstProcs.ListIndex > -1 Then ShowPTips (lstProcs.ListIndex) End Sub Private Sub lstProcs_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) On Error Resume Next If lstProcs.ListIndex > -1 Then ShowPTips (lstProcs.ListIndex) End Sub Private Sub cmdOK_Click() On Error Resume Next Unload Me End Sub Private Sub cmdRefresh_Click() On Error Resume Next LoadProcesses End Sub Private Sub Form_Load() On Error Resume Next cmdRefresh_Click End Sub Private Sub LoadProcesses() On Error Resume Next Dim sExeName As String, r As Long, uProcess As PROCESSENTRY32 lSnapShot = CreateToolhelpSnapshot(2&, 0&) If lSnapShot <> 0 Then nop = 0 uProcess.lSize = Len(uProcess) r = ProcessFirst(lSnapShot, uProcess) Do While r p(nop) = uProcess nop = nop + 1 r = ProcessNext(lSnapShot, uProcess) Loop CloseHandle lSnapShot ShowProcesses End If End Sub Private Sub ShowProcesses() On Error Resume Next Dim i As Long, MaxLen As Long, PName As String MaxLen = 0 lstProcs.Clear For i = 0 To nop - 1 PName = Left(p(i).sExeFile, InStr(p(i).sExeFile, Chr(0)) - 1) lstProcs.AddItem PName If Len(PName) > MaxLen Then MaxLen = Len(PName) Next lstProcs.ListIndex = 0 SendMessage lstProcs.hwnd, LB_SETHORIZONTALEXTENT, 7 * (MaxLen + 2), 0 Me.Caption = "Список активных процессов (" & CStr(nop) & ")" End Sub Private Sub ShowPTips(i As Long) On Error Resume Next lbl2 = String(8 - Len(Hex(p(i).lProcessId)), "0") & Hex(p(i).lProcessId) lbl3 = String(8 - Len(Hex(p(i).lParentProcessId)), "0") & Hex(p(i).lParentProcessId) lbl4 = String(8 - Len(Hex(p(i).lModuleId)), "0") & Hex(p(i).lModuleId) lbl5 = String(8 - Len(Hex(p(i).lDefaultHeapId)), "0") & Hex(p(i).lDefaultHeapId) lbl6 = p(i).lUsage lbl7 = p(i).lThreads lbl8 = p(i).lPriClassBase lbl9 = p(i).lFlags End Sub Ребята, давайте не будем флудить в форуме. Что тяжело написать ки на форму пару кнопок; или ForeColor=Color ? Т.е. как это не показывает? Они все взяты из стандартного API Viewer. 2Sharp: а чего ты удивляешься? У тебя такого не было?? У меня лично было... Нет таких вункций: CreateToolhelp32Snapshot CкeateToolhelpSnapshot ProcessFirst Первые две я всё-таки вывел, а вот все которые используются после ProcessFirst (включительно) отсутсвуют (ну может за исключением некоторых). Невидно и структуру PROCESSENTRY32. Но я её врде перевёл, вот что у меня получилось: Public Type PROCESSENTRY32 Короче, мне нужны обявления... 2Sharp: Так ты мне дашь декларесы этих API функций и структур? Очень нужно... Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Public Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long) Public Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessId As Long) As Long Public Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long Public Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long Public Type PROCESSENTRY32 lSize As Long lUsage As Long lProcessId As Long lDefaultHeapId As Long lModuleId As Long lThreads As Long lParentProcessId As Long lPriClassBase As Long lFlags As Long sExeFile As String * MAX_PATH End Type А вообще же, поставь MASM32 и юзай егойный windows.inc, тогда у тебя с объявлениями API проблемы больше никогда не возникнут... Страница: 1 |
Вопрос: Процессы в винде
Добавлено: 11.12.03 21:32
Автор вопроса: KAM | ICQ: 190197618
Ребят, подскажите как вывести все процессы, идущие в винде например в лист бокс? Очень нужно, помогите пожалуйста.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 11.12.03 22:30
Номер ответа: 2
Автор ответа:
Svetlana
ICQ: 262385618
Вопросов: 43
Ответов: 205
Профиль | | #2
Добавлено: 11.12.03 23:26
Vot tyt to chto tebe nado: http://vbnet.ru/faq/showtopic.asp?id=120
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 12.12.03 17:17
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 12.12.03 17:19
Номер ответа: 5
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #5
Добавлено: 13.12.03 08:14
Номер ответа: 6
Автор ответа:
KAM
ICQ: 190197618
Вопросов: 25
Ответов: 97
Профиль | | #6
Добавлено: 15.12.03 18:44
Sharp, есть проблема - нехватает объявлений АПИ функций, а мой АПИ-гид половину не показывает...
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 16.12.03 02:13
Номер ответа: 8
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #8
Добавлено: 16.12.03 12:36
Номер ответа: 9
Автор ответа:
KAM
ICQ: 190197618
Вопросов: 25
Ответов: 97
Профиль | | #9
Добавлено: 16.12.03 16:10
lSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
lFlags As Long
End Type
Номер ответа: 10
Автор ответа:
KAM
ICQ: 190197618
Вопросов: 25
Ответов: 97
Профиль | | #10
Добавлено: 17.12.03 18:09
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 17.12.03 22:43