首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监控所有流程的执行

监控所有流程的执行
EN

Stack Overflow用户
提问于 2013-04-12 16:21:30
回答 2查看 2.2K关注 0票数 0

我该怎么做呢?

我不想使用计时器+一组进程(因为这是我一直使用的新手方式),我在寻找更好和改进的东西。

我尝试过使用ManagementEventWatcher,但此代码示例在Windows7中不起作用(我没有收到任何错误,但没有显示MsgBoxes):

代码语言:javascript
复制
Public Class Form1

Dim WithEvents startWatch As New System.Management.ManagementEventWatcher(New System.Management.WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"))
Dim WithEvents stopWatch As New System.Management.ManagementEventWatcher(New System.Management.WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"))

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    AddHandler startWatch.EventArrived, AddressOf startWatch_EventArrived
    AddHandler stopWatch.EventArrived, AddressOf stopWatch_EventArrived
    startWatch.Start()
    stopWatch.Start()
End Sub

Public Sub startWatch_EventArrived(ByVal sender As Object, ByVal e As System.Management.EventArrivedEventArgs)
    MsgBox("Process started: " & e.NewEvent.Properties("ProcessName").Value)
End Sub

Private Sub stopWatch_EventArrived(ByVal sender As Object, ByVal e As System.Management.EventArrivedEventArgs)
    MsgBox("Process stopped: " & e.NewEvent.Properties("ProcessName").Value)
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    startWatch.Stop()
    stopWatch.Stop()
End Sub

End Class
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-05 13:37:03

Management Event Watcher可以执行您所需的操作。看看:ManagementEventWatcher.Stop Method

票数 1
EN

Stack Overflow用户

发布于 2013-04-12 17:33:36

这将获得每个正在运行的进程的名称和PID,只需修改此代码即可获得任何其他信息...

代码语言:javascript
复制
 Dim processList As String
 For Each p As Process In Process.GetProcesses()
    processList = processList & " " & p.SessionId & vbNewLine
 Next()
 MsgBox(processList)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15966405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档