C# 利用WMI进行日志监视

原创 2007年10月03日 11:10:00

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Management;
using System.Windows.Forms;

namespace MonitorLogEvent
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private ManagementEventWatcher LogEvent=null;

        private void cmdStart_Click(object sender, EventArgs e)
        {
            ConnectionOptions co = new ConnectionOptions();
            co.Impersonation = ImpersonationLevel.Impersonate;
            co.EnablePrivileges = true;
            ManagementScope scope = new ManagementScope("////.//root//cimv2", co);
            WqlEventQuery wql = new WqlEventQuery("__InstanceCreationEvent", new TimeSpan(0, 0, 1), "TargetInstance ISA 'Win32_NTLogEvent'");
            LogEvent = new ManagementEventWatcher(scope, wql);
            LogEvent.EventArrived += new EventArrivedEventHandler(LogEvent_EventArrived);
            LogEvent.Start();
        }

        private void LogEvent_EventArrived(object sender,EventArrivedEventArgs e)
        {
            ManagementBaseObject mo = (ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value;
            PropertyDataCollection  propertyDataCollections= mo.Properties;
            foreach (PropertyData data in propertyDataCollections)
            {
                MessageBox.Show(data.Name);
            }

                //Category
                //CategoryString
                //ComputerName
                //Data
                //EventCode
                //EventIdentifier
                //EventType
                //InsertionStrings
                //Logfile
                //Message
                //RecordNumber
                //SourceName
                //TimeFGenerated
                //TimeWritten
                //Type
                //User
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            this.FormClosing += new FormClosingEventHandler(frmMain_FormClosing);
        }

        private void frmMain_FormClosing(object sender, EventArgs e)
        {
            if (LogEvent != null)
            {
                LogEvent.Stop();
                LogEvent = null;
            }

        }

        private void cmdEnd_Click(object sender, EventArgs e)
        {
            if (LogEvent!=null)
            {
                LogEvent.Stop();
                LogEvent = null;
            }
        }
    }

C#:基于WMI监视USB插拔

参考资料: USB Port Insert / Remove detection using WMI USB Port Insert / Remove detection using WMI (S...
  • dz45693
  • dz45693
  • 2011年08月18日 15:43
  • 4444

C#:基于WMI监视USB插拔

参考资料: USB Port Insert / Remove detection using WMI USB Port Insert / Remove detection using WMI ...
  • jhqin
  • jhqin
  • 2011年08月18日 15:20
  • 7798

C#:基于WMI监视USB插拔

作者:Splash 转自:http://blog.csdn.net/jhqin/article/details/6698411 参考资料: USB Port Insert / Remove ...
  • whw8007
  • whw8007
  • 2014年02月28日 08:30
  • 1112

c#利用wmi远程关机

  • 2010年04月28日 17:36
  • 1KB
  • 下载

ring3下利用WMI监视进程创建(vc版)

#include "stdafx.h" #define _WIN32_DCOM #include using namespace std; #include #include # pragma...
  • zwfgdlc
  • zwfgdlc
  • 2011年07月18日 11:02
  • 3062

利用MK-QUERY-DIGEST进行慢日志分析

  • 2011年01月26日 09:22
  • 50KB
  • 下载

Linux环境下如何通过WMI对windows进行监控

从事监控行业已经2年多了,以前忙的时候没时间查linux下如何进行win对windows的监控,前段时间由于需求必须完成,才发现网上挺多这方面的资料,自己测试了下。完全可以搞定,不过也还是有些问题,w...

c#使用WMI更改IP地址

  • 2012年09月11日 11:30
  • 58KB
  • 下载

C#,WMI获取系统信息

加入命名空间: using System.Management;     ///         /// //获取CPU序列号代码         ///         /// ...
  • haylhf
  • haylhf
  • 2012年11月23日 14:39
  • 2728
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 利用WMI进行日志监视
举报原因:
原因补充:

(最多只允许输入30个字)