Узнать чем запущена программа - VB
Формулировка задачи:
Доброго всем времени суток.
Имеется программа на VB6 её запускает другая программа, как из нашей VB6 программы узнать кто её запустил?
Например тыкнули в проводнике нашу прогу, она написала "explorer.exe", вызвали её через командную строку, она выдаст "cmd.exe" ну и аналогично с другими прогами...
Заранее спасибо!
Решение задачи: «Узнать чем запущена программа»
textual
Листинг программы
Option Explicit Private Sub Command1_Click() Dim Obj As Object, ParentProcID$, Args$, ParentProcName$, ParentProcPath$, pos& For Each Obj In GetObject("winmgmts:\\.\root\cimv2").ExecQuery _ ("SELECT * FROM Win32_Process WHERE Caption='" & App.EXEName & ".exe'") ParentProcID = Obj.ParentProcessID Args = Obj.CommandLine Next For Each Obj In GetObject("winmgmts:\\.\root\cimv2").ExecQuery _ ("SELECT * FROM Win32_Process WHERE Handle='" & ParentProcID & "'") ParentProcName = Obj.Caption ParentProcPath = Obj.ExecutablePath Next 'CommandLineArgs Parse pos = InStr(Args, """") If pos Then Args = Mid(Args, InStr(pos + 1, Args, """") + 2) Else Args = Mid(Args, InStr(Args, " ") + 2) End If MsgBox "Текущий процесс: " & vbLf & _ "имя: " & App.EXEName & ".exe" & vbLf & _ "аргументы: " & Args & String(2, vbLf) & _ "Родительский процесс" & vbLf & _ "имя: " & ParentProcName & vbLf & _ "PID: " & ParentProcID & vbLf & _ "путь запуска: " & ParentProcPath End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д