0

我是编程新手。我被要求创建一个代码,每当用户在其系统上启动或执行应用程序时,该代码将在本地监视应用程序的名称并将其记录到文本文件中。我对流程不太了解,你能帮帮我吗?

用户为任何应用程序加注星标,日志保存在带有时间和应用程序名称的文本文件中。

4

1 回答 1

2

您必须使用WMI。然后,您可以监视Win32_ProcessStartTrace以在进程启动时收到通知。此外,您甚至可以Win32_ProcessStopTrace在进程停止时收到通知。您的代码将如下所示:

Public Shared Sub Main()
    Dim startWatcher As ManagementEventWatcher = New ManagementEventWatcher(New WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"))
    startWatcher.EventArrived += New EventArrivedEventHandler(startWatcher_EventArrived)
    startWatcher.Start()
End Sub


Private Shared Sub startWatcher_EventArrived(ByVal sender As Object, ByVal e As EventArrivedEventArgs)
    Dim logString As String ="{0}: Process started: {1}".Format( Now.ToString(), e.NewEvent.Properties("ProcessName").Value)
     Using sw As StreamWriter = File.AppendText(YourLogFile)
            sw.WriteLine(logString)
     End Using
End Sub
于 2019-01-18T11:00:16.873 回答