专业编程基础技术教程

网站首页 > 基础教程 正文

使用C#编写一个Windows服务来监视系统事件日志。

ccvgpt 2024-08-28 13:37:11 基础教程 48 ℃

下面代码是如何使用C#编写一个Windows服务来捕获Windows用户登录事件:

using System;
using System.ServiceProcess;
using System.Diagnostics;

namespace UserLoginService
{
    public partial class UserLoginService : ServiceBase
    {
        private EventLog eventLog;

        public UserLoginService()
        {
            InitializeComponent();
            this.ServiceName = "UserLoginService";
            this.CanHandleSessionChangeEvent = true;

            eventLog = new EventLog("Security");
            eventLog.EntryWritten += new EntryWrittenEventHandler(OnEntryWritten);
        }

        protected override void OnStart(string[] args)
        {
            eventLog.EnableRaisingEvents = true;
            eventLog.WriteEntry("服务启动);
        }

        protected override void OnStop()
        {
            eventLog.WriteEntry("服务停卡");
        }

        private void OnEntryWritten(object sender, EntryWrittenEventArgs e)
        {
            EventLogEntry entry = e.Entry;
            if (entry.InstanceId == 4624) // 4624这个事件ID表示成功登录
            {
                string message = entry.Message;
                Console.WriteLine("用户登录: " + message);
            }
        }
    }
}

使用C#编写一个Windows服务来监视系统事件日志。

Tags:

最近发表
标签列表