Public Class Form1
Dim RiTeBo As New RichTextBox
Dim Button1 As New Button
Dim Button2 As New Button
Dim Label1 As New Label
Dim Eventi As New List(Of String)
Dim Timer1 As Timer
Dim OraACCENSIONE As Date
Private Sub Button1_Click(sender As Object, e As EventArgs)
Dim EventoLogApp As New System.Diagnostics.EventLog("System") ' applicazione di diagnostica
Eventi.Clear()
RiTeBo.Clear()
RiTeBo.Refresh()
' ricerca dall'inizio, ID 12 = avvio, ID 13 = arresto
For i = 1 To EventoLogApp.Entries.Count - 1
If i Mod 50 = 0 Then Label1.Text = i : Label1.Refresh()
If EventoLogApp.Entries(i).InstanceId.ToString = 12 Then
Eventi.Add("------ ACCENSIONE PC IN EVENTO N. " & i)
Eventi.Add(EventoLogApp.Entries(i).TimeGenerated.ToString)
Eventi.Add(EventoLogApp.Entries(i).Source.ToString)
Eventi.Add("ID: " & EventoLogApp.Entries(i).InstanceId.ToString)
Eventi.Add("PC: " & EventoLogApp.Entries(i).MachineName.ToString)
Eventi.Add("")
End If
If EventoLogApp.Entries(i).InstanceId.ToString = 13 Then
Eventi.Add("------ SPEGNIMENTO PC IN EVENTO N. " & i)
Eventi.Add(EventoLogApp.Entries(i).TimeGenerated.ToString)
Eventi.Add(EventoLogApp.Entries(i).Source.ToString)
Eventi.Add("ID: " & EventoLogApp.Entries(i).InstanceId.ToString)
Eventi.Add("PC: " & EventoLogApp.Entries(i).MachineName.ToString)
Eventi.Add("")
End If
Next
RiTeBo.Lines = Eventi.ToArray
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
Dim EventoLogApp As New System.Diagnostics.EventLog("System")
Eventi.Clear()
RiTeBo.Clear()
' ricerca dalla fine, per trovare più velocemente l'ultimo avvio
For i = EventoLogApp.Entries.Count - 1 To 1 Step -1
Label1.Text = i
Label1.Refresh()
If EventoLogApp.Entries(i).InstanceId.ToString = 12 Then
Eventi.Add("------ ULTIMA ACCENSIONE IN EVENTO N. " & i)
Eventi.Add(EventoLogApp.Entries(i).TimeGenerated.ToString)
OraACCENSIONE = EventoLogApp.Entries(i).TimeGenerated
Eventi.Add(EventoLogApp.Entries(i).Source.ToString)
Eventi.Add("ID: " & EventoLogApp.Entries(i).InstanceId.ToString)
Eventi.Add("PC: " & EventoLogApp.Entries(i).MachineName.ToString)
timer1.Enabled = True
Exit For
End If
Next
RiTeBo.Lines = Eventi.ToArray
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
' preparazione del Form
Button1.Text = "CERCA tutti"
Button1.Location = New Point(10, 10)
AddHandler Button1.Click, AddressOf Button1_Click
Me.Controls.Add(Button1)
Button2.Text = "CERCA ultima accensione"
Button2.Location = New Point(90, 10)
Button2.Width = 150
AddHandler Button2.Click, AddressOf Button2_Click
Me.Controls.Add(Button2)
Label1.Location = New Point(240, 16)
Label1.AutoSize = True
Me.Controls.Add(Label1)
RiTeBo.Location = New Point(10, 50)
Me.Controls.Add(RiTeBo)
Me.Size = New Size(400, 500)
Me.Text = "EVENTI ON/OFF - C.B."
timer1 = New Timer
AddHandler timer1.Tick, AddressOf timer1_tick
timer1.Interval = 1000
timer1.Enabled = False
End Sub
Private Sub Form1_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
RiTeBo.Size = New Size(Me.Width - 40, Me.Height - 100)
End Sub
Private Sub timer1_tick(sender As Object, e As EventArgs)
Label1.Text = Now.Subtract(OraACCENSIONE).ToString("G")
End Sub
End Class