Таск Менеджер или как узнать про процессы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Таск Менеджер или как узнать про процессы

Сообщение Bov » 29.10.2005 (Сб) 16:35

Всем доброго времени суток! Хочу сделать собственный Process Explorer. Вот. Но никак не могу добраться до процессов. Как через VB узнать какие процессы работают в данный момент? И как допустим убить (закрыть) процесс?

Если кому не сложно, может кто напишет на примере убития блокнота (notepad.exe). Заранее спасибо. С уважением Bov.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.10.2005 (Сб) 16:38

;)
В поиске есть все, что надо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.10.2005 (Сб) 16:38

Можно через WinAPI, можно через WMI. В первом случае TerminateProcess, во втором метод есть, не помню названия. А зачем? Этих Process Explorer'ов в инете куча, на любой вкус.
Lasciate ogni speranza, voi ch'entrate.

Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Сообщение Bov » 29.10.2005 (Сб) 16:40

Знаю, но хотелось бы научиться через VB убивать или просматривать процессы.(( В поиске искал - так и не нашёл, может кто даст прямую ссылку или напишет код тут?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.10.2005 (Сб) 16:44

Искал? :?
http://bbs.vbstreets.ru/viewtopic.php?t ... ateprocess

Должно быть то, что нужно. Не проверял. Судя по комментам - гениальность.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 31.10.2005 (Пн) 18:32

А как узнать, кем процесс запущен (системой или пользователем)?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Таск Менеджер или как узнать про процессы

Сообщение AndreyIl » 03.11.2005 (Чт) 9:33

На форме создаешь CommandButton (Command1) и 3 ListBox(List1 - имя процесса, List2 - под кем запущен процесс, List3 - домен). Вот код:

Option Explicit

Private WMIService As Object
Private ProcessList As Object
Private Process As Object
Private Prop As String
Private UserName As String
Private Domain As String

Private Sub Command1_Click()
Refr
End Sub

Private Sub Form_Load()
Set WMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")
Refr
End Sub

Private Sub List1_DblClick()
If MsgBox("Вы действительно хотите убить процесс?", vbYesNo, "Убиение процесса") = vbNo Then Exit Sub
Set ProcessList = WMIService.ExecQuery _
("Select * from Win32_Process Where Name = '" & List1.List(List1.ListIndex) & "'")
For Each Process In ProcessList
Process.Terminate
Next
Refr
End Sub

Private Sub Refr()
List1.Clear
List2.Clear
List3.Clear
Set ProcessList = WMIService.ExecQuery _
("Select * from Win32_Process")
For Each Process In ProcessList
UserName = ""
Domain = ""
If Process.Name <> "System Idle Process" Then
If Process.Name <> "System" Then
If Process.Name <> "csrss.exe" Then
Prop = Process.GetOwner(UserName, Domain)
List1.AddItem Process.Name, List1.ListCount
Else
List1.AddItem "csrss.exe", List1.ListCount
End If
Else
List1.AddItem "System", List1.ListCount
End If
Else
List1.AddItem "System Idle Process", List1.ListCount
End If
List2.AddItem UserName, List2.ListCount
List3.AddItem Domain, List3.ListCount
Next
End Sub

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 03.11.2005 (Чт) 12:03

Лучше делать с полным путём процесса, а не только с именем файла.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 03.11.2005 (Чт) 14:40

Спасибо за помощь!!! :D
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: SemrushBot и гости: 130

    TopList