Узнать чем запущена программа - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы