我是编程新手。我被要求创建一个代码,该代码将在用户在系统上启动或执行应用程序时在本地监视该应用程序的名称并将其记录到文本文件中。我对流程没有太多了解,您能帮我吗?
用户为任何应用程序加注星标,日志将保存在带有时间和应用程序名称的文本文件中。
答案 0 :(得分: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