J'utilise sous le code C# pour obtenir écrasé nom de l'application de EventLog,est-il un autre moyen de s'écrasé nom de l'application de EventLog en utilisant 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();
Le problème est x.Message
contient une grande chaîne avec le nom de l'application (wmiprvse.exe
, exemple ci-dessous),
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:
Je peux faire une recherche pour trouver le nom de l'application dans cette grande chaîne, mais est-il une meilleure façon de trouver une application accidentée?
Vous voulez le faire pour toutes les applications sur votre PC – Amit
non pour certaines applications, comme toutes les applications antivirus – user584018
Vous pouvez diviser le caractère x.Message par newline dans une liste. Ensuite, dans cette liste, vous pouvez sélectionner l'entrée contenant le chemin d'application Faulting. – Amit