【发布时间】:2019-11-15 07:28:23
【问题描述】:
我想获取所有 WINWORD 进程的实例。如图所示,我在 WINWORD 进程中运行了两个窗口。我想获取他们的文件名和路径。
这是我的代码
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 started. Name: " & processName & " | ID: " + processID)
FileIO.WriteToFile(" | Date & Time: ")
FileIO.WriteToFile(System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") & vbNewLine & 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 stopped. Name: " & processName & " | ID: " + processID)
FileIO.WriteToFile(" | Date & Time: ")
FileIO.WriteToFile(System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") & vbNewLine & vbNewLine)
End Sub
我正在获取进程名称、ID 以及进程的日期和时间。我想获取进程的实例。
【问题讨论】:
-
这是一个带有多个子窗口的单进程“winword”。 Here 是一种从每个子窗口获取窗口标题的方法。这允许您查看正在编辑的文档的名称。 (参考 Excel,但概念与 Word 相同)。
-
如果你使用任务管理器,你可以看到它是一个单一的进程。右键单击列并选择 PID。你会看到 Word 有一个进程 ID。
-
见@theduck下面的代码
标签: vb.net ms-word wmi managementeventwatcher