C# 如何使用ManagementEventWatcher获取流程可执行路径
我知道如何使用ManagementEventWatcher获取ProcessID和ProcessName。我的代码运行良好 我需要什么?C# 如何使用ManagementEventWatcher获取流程可执行路径,c#,vb.net,process,wmi,managementeventwatcher,C#,Vb.net,Process,Wmi,Managementeventwatcher,我知道如何使用ManagementEventWatcher获取ProcessID和ProcessName。我的代码运行良好 我需要什么? 我想得到一个过程的路径。 我想打印ProcessID、ProcessName和ProcessPath 我的代码: Dim processStartEvent As ManagementEventWatcher = New ManagementEventWatcher("SELECT * FROM Win32_ProcessStartTrace") Dim pr
我想得到一个过程的路径。
我想打印ProcessID、ProcessName和ProcessPath 我的代码:
Dim processStartEvent As ManagementEventWatcher = New ManagementEventWatcher("SELECT * FROM Win32_ProcessStartTrace")
Dim processStopEvent As ManagementEventWatcher = New ManagementEventWatcher("SELECT * FROM Win32_ProcessStopTrace")
Public Sub New()
InitializeComponent()
AddHandler processStartEvent.EventArrived, AddressOf Me.processStartEvent_EventArrived
processStartEvent.Start()
AddHandler processStopEvent.EventArrived, AddressOf Me.processStopEvent_EventArrived
processStopEvent.Start()
End Sub
Private Sub processStartEvent_EventArrived(EventArrivedEventArgs, e)
Dim processName As String = e.NewEvent.Properties("ProcessName").Value.ToString
Dim processID As String = Convert.ToInt32(e.NewEvent.Properties("ProcessID").Value).ToString
FileIO.WriteToFile("Process ID: " & processID & vbNewLine)
FileIO.WriteToFile("Process Name: " & processName & vbNewLine)
End Sub
Private Sub processStopEvent_EventArrived(EventArrivedEventArgs, e)
Dim processName As String = e.NewEvent.Properties("ProcessName").Value.ToString
Dim processID As String = Convert.ToInt32(e.NewEvent.Properties("ProcessID").Value).ToString
FileIO.WriteToFile("Process ID: " & processID & vbNewLine)
FileIO.WriteToFile("Process Name: " & processName & vbNewLine)
End Sub
如果你不熟悉VB.net,你也可以用C#来回答
如何从
processID
获取进程路径。?
那样
System.Diagnostics.Process.GetProcessById(processID).MainModule.FileName;
这里有一些关于main模块的信息
我不知道为什么这里要从string
转换为int
,然后从int
转换为string
Dim processID As String = Convert.ToInt32(e.NewEvent.Properties("ProcessID").Value).ToString()