Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
grindars
-
- Обычный пользователь
-
-
- Сообщения: 75
- Зарегистрирован: 12.10.2005 (Ср) 12:42
- Откуда: Москва
-
grindars » 11.07.2006 (Вт) 19:32
Как получить имя EXE-файла процесса-родителя моей программы?
-
tyomitch
-
- Пользователь #1352
-
-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 11.07.2006 (Вт) 19:36
Если он уже завершился, то никак.
Иначе читай PID родителя из PEB. NtQueryInformationProcess в помощь.
Поиск сверху и красный.
-
grindars
-
- Обычный пользователь
-
-
- Сообщения: 75
- Зарегистрирован: 12.10.2005 (Ср) 12:42
- Откуда: Москва
-
grindars » 11.07.2006 (Вт) 19:53
tyomitch, Поиск выдал только
это и где искать твой пример? У меня трафик щас крайне лимитирован ... GPRS... 0.25$/1mb..
-
AjaxVS
-
- Постоялец
-
-
- Сообщения: 506
- Зарегистрирован: 01.12.2004 (Ср) 13:12
- Откуда: Donetsk, Battle.Net
-
AjaxVS » 11.07.2006 (Вт) 22:33
Айййййайайай! NtQueryInformationProcess
- Код: Выделить всё
Dim s As String
Dim wmi, oq, o, oq1, o1
Dim iPID As Long
s = "calc.exe" 'программа, для которой ты хочешь найти имя EXE-файла процесса-родителя
Set wmi = GetObject("winmgmts:")
On Error Resume Next
Set oq = wmi.execquery("select * from Win32_Process where Name='" & s & "'")
s = "Родители:" & vbCrLf
For Each o In oq
iPID = o.ParentProcessId
Set oq1 = wmi.execquery("select * from Win32_Process where ProcessID=" & iPID)
For Each o1 In oq1
s = s & o1.Name & vbCrLf 'в o1.name содержится имя родителя
Next
Next
MsgBox s
Конечно, код можно оптимизировать.. Но суть, думаю, ясна.
_____
Спец по WMI +_+
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot и гости: 76