Chkdsklogviewer (lecture d'un journal de l'observateur d'évènements)

Description

Petite appli permettant de récupérer la liste des entrées du journal pour l'outil chkdsk.

Source / Exemple :


using System;
using System.Collections;
using System.Diagnostics;

namespace CHKDSKLogViewer
{
    public class ChkDskLogEntry
    {
        private const string EVENTSOURCE = "Winlogon"; // la source de l'event
        private const int EVENTID = 1001; // l'ID de l'event

        public ChkDskLogEntry( EventLogEntry entry )
        {
            m_date = entry.TimeGenerated;
            m_message = entry.Message;
        }

        #region Champs

        private DateTime m_date;
        private string m_title;
        private string m_message;

        #endregion

        #region Propriétés

        /// <summary>
        /// Obtient la date et l'heure de l'entrée.
        /// </summary>
        public DateTime Date
        {
            get
            {
                return m_date;
            }
        }

        /// <summary>
        /// Obtient le message de l'entrée.
        /// </summary>
        public string Message
        {
            get
            {
                return m_message;
            }
        }

        /// <summary>
        /// Obtient le titre de l'entrée.
        /// </summary>
        public string Title
        {
            get
            {
                // extrait le titre du message si ce n'est déjà fait.
                if ( m_title == null )
                    SetTitle();

                return m_title;
            }
        }

        #endregion

        #region Méthodes private

        /// <summary>
        /// Défini le titre à partir du message.
        /// </summary>
        private void SetTitle()
        {
            // titre = 1ere ligne du message

            int index = m_message.IndexOf(Environment.NewLine);

            if ( index == -1)
                index = m_message.IndexOf("\n");

            m_title = m_message.Substring(0, m_message.IndexOf(Environment.NewLine));
        }

        #endregion

        #region Méthodes public (static)

        /// <summary>
        /// Récupère un tableau contenant la liste des entrées de chkdsk dans le log.
        /// </summary>
        /// <returns></returns>
        public static ChkDskLogEntry[] GetEntries()
        {
            EventLog log = new EventLog("Application");
            ArrayList entries = new ArrayList();

            foreach(EventLogEntry entry in log.Entries)
            {
                if ( entry.EventID == EVENTID && entry.Source == EVENTSOURCE)
                {
                    entries.Add(new ChkDskLogEntry(entry));
                }
            }

            return (ChkDskLogEntry[])entries.ToArray(typeof(ChkDskLogEntry));
        }

        #endregion
    }
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.