Ich verwende unter C# -Code zu erhalten abgestürzt Anwendungsnamen von EventLog,Gibt es eine andere Art und Weise von EventLog abgestürzt Anwendungsnamen C#
EventLog log = new EventLog("Application");
var entries = log.Entries.Cast<EventLogEntry>().Reverse().Where(x => (UInt16)x.InstanceId == 1000 && x.EntryType.ToString() == "Error" && x.Source == "Application Error").Select(x => new
{
x.Message,
x.TimeGenerated
}).ToList();
Das Problem ist x.Message
enthält eine große Zeichenfolge mit Anwendungsnamen erhalten verwenden (wmiprvse.exe
, Beispiel unten),
Faulting application name: wmiprvse.exe, version: 10.0.10586.0, time stamp: 0x5632d443
Faulting module name: svrenumapi100.dll, version: 2009.100.1600.1, time stamp: 0x4bb682e9
Exception code: 0xc0000005
Fault offset: 0x0003a0bf
Faulting process id: 0xcdcc
Faulting application start time: 0x01d32cb6db70fd71
Faulting application path: C:\windows\sysWOW64\wbem\wmiprvse.exe
Faulting module path: C:\Program Files (x86)\Microsoft SQL
Server\100\Shared\svrenumapi100.dll
Report Id: 7ecb9ccf-40b3-47b3-956e-a8bfbd2ec0f3
Faulting package full name:
Faulting package-relative application ID:
ich eine Suche machen kann Anwendungsnamen innerhalb dieser großen Zeichenfolge zu finden, aber gibt es eine bessere Art und Weise abgestürzt Anwendung zu finden?
Sie möchten dies für alle Anwendungen auf Ihrem PC tun. – Amit
Nein für bestimmte Anwendungen, wie alle Antiviren-Anwendungen – user584018
Sie können die x.Message durch einen Zeilenumbruch in eine Liste aufteilen. In dieser Liste können Sie dann den Eintrag auswählen, der den fehlerhaften Anwendungspfad enthält. – Amit