2016-05-17 1 views
0

Я пишу приложение на данный момент, часть его будет выскабливанием некоторой информации из журнала событий Windows, он в основном работает ....чтения в vb.net

Dim strValue As String 
    Dim objLogs() As EventLog 
    Dim Logname As String = "Application" 
    Dim objEntry As EventLogEntry 
    Dim objLogEntry As EventLogEntry 
    Dim objLog As EventLog 
    objLogs = EventLog.GetEventLogs() 

    For Each objLog In objLogs 
    If objLog.LogDisplayName = Logname Then 
     For Each objLogEntry In objLog.Entries 
     WriteLine("EventID") 
     WriteLine("Machinename") 
     WriteLine("message") 
     Next 
    Exit For 
    End If 
    Next 

Это с радостью выпишуте EventID, имя машины и сообщение о событии. details tab in event viewer

Я не могу понять, как вывести вкладку «детали» в средстве просмотра событий, идеально подходящем для строк или аналогичных.

MSDN не помогает, может ли кто-нибудь указать мне в правильном направлении, пожалуйста?

Спасибо заранее,

ответ

0

выглядит как детали в EventLogEntry представлена ​​свойством данных, который хранится в виде массива байтов. Вы бы вынуждены были бы затем преобразовать в нечто читаемое. Но формат данных, по-видимому, зависит от версии ОС Windows.

Здесь альтернативный способ сделать это. Код скопирован из ответа на следующий вопрос и преобразован в VB.Net.

Serializing a .NET EventLogEntry instance to XML

Imports System.Diagnostics.Eventing.Reader 

Sub Main() 
    Dim query As New EventLogQuery("System", PathType.LogName) 
    Dim watcher As New EventLogWatcher(query) 

    AddHandler watcher.EventRecordWritten, AddressOf watcher_EventRecordWritten 
    watcher.Enabled = True 
    Console.ReadLine() 
End Sub 

Public Sub watcher_EventRecordWritten(sender As Object, e As EventRecordWrittenEventArgs) 
    Console.WriteLine(e.EventRecord.ToXml()) 
End Sub 

Помещенный в главном модуле простого приложения консоль, а часы для системных событий. Запись данных события, преобразованных в XML, в виде одной длинной строки.

Работает с использованием рамки 4.5 на компьютере с Windows 7.

+0

Это замечательно, В настоящий момент у меня есть таймер, который каждые 60 секунд просто ищет последний записанный журнал между настоящим и последним проверками и сбрасывает данные. Наблюдает ли наблюдатель подобное, что он просто читает журналы, поскольку они активно пишутся? (Изменить, введите ключ, не сохраняет возврат каретки) – Nerden

+0

Даже в качестве консольного приложения он просто запускается и затем заканчивается через несколько секунд, я что-то упустил с реализацией? – Nerden

Смежные вопросы