自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析C++程序監(jiān)視Windows事件日志

開發(fā) 后端
想要充分的掌握C++程序監(jiān)視Windows事件日志的技術(shù),那么就要對C++中的結(jié)構(gòu)、語句、變量、函數(shù)、預(yù)處理指令、輸入和輸出等內(nèi)容進(jìn)行了解掌握。

下面的文章主要講述如何使用C++程序中監(jiān)視Windows事件日志,還可以對程序進(jìn)行擴充,如在事件日志記錄到特定的事件類型時,發(fā)電子郵件通知用戶,本文提供的C++程序代碼充分的說明。

 .NET 1.0/1.1托管C++程序,如果你在使用一個更高版本的 .NET,需要在工程屬性對話框中設(shè)置/clr:oldSyntax編譯選項,或調(diào)整以下代碼使之符合新的托管語法。用于Windows事件日志的關(guān)鍵 .NET類型是Diagnostics::EventLog類。

1、定義一個托管類并實現(xiàn)事件日志通知處理程序

處理程序(OnNewLogEntry)會在"新事件日志項"事件引發(fā)時調(diào)用,同時,請注意此處的EntryWrittenEventHandler,以下是示例代碼:

  1. __gc class NewLogEntryEventHandler  
  2. {  
  3.  public:  
  4.   NewLogEntryEventHandler() {}  
  5.  public:  
  6.   void OnNewLogEntry(Object* sender, EntryWrittenEventArgs* e)  
  7.   {  
  8.    //獲取并處理最近創(chuàng)建的項  
  9.    EventLogEntry* eentry = e->Entry;  
  10.   }  
  11. }; 

2、實例化一個EventLog對象,并把它的EnableRaisingEvents屬性設(shè)為true

屬性EventLog::EnableRaisingEvents是一個布爾類型,其控制了在項目添加到EventLog對象指定的日志時,是否引發(fā)事件:

  1. EventLog* log = new EventLog("Application");  
  2. log->EnableRaisingEvents = true;  

3、把事件處理程序連接到"新事件日志項"事件

首先,實例化定義了事件處理程序的對象(在此例中為NewLogEntryEventHandler),接著,把事件方法(OnNewLogEntry)添加到EventLog::EntryWritten的事件處理程序列表中:

  1. NewLogEntryEventHandler* handler = new NewLogEntryEventHandler();  
  2. log->EntryWritten +=  
  3. new EntryWrittenEventHandler( handler,&NewLogEntryEventHandler::OnNewLogEntry); 

4、為特定事件的處理編寫代碼

回過頭來看一個OnNewLogEntry方法,可以看到傳遞給事件處理程序的EntryWrittenEventArgs對象有一個名為EventLogEntry的成員,其包含了有關(guān)記錄項目的詳細(xì)情況,具體為以下屬性:

  1.   ·MachineName--創(chuàng)建事件日志的電腦系統(tǒng)名。   
  2.  
  3.   ·Source--創(chuàng)建此事件的事件源或程序源。  
  4.  
  5.   ·Message--用戶可在事件查看器中讀取這條文本值,其描述了記錄的事件。  
  6.  
  7.   ·Event Type--此值(代表了EventLogEntryType)為一個枚舉值,其代表記錄的事件類型:信息(默認(rèn))、警告、錯誤、審核成功、審核失敗。  
  8.  
  9.   ·Event ID--為有關(guān)事件程序特定的號碼。  
  10.  
  11.   ·Data--此值通常用于存儲二進(jìn)制信息--如內(nèi)存轉(zhuǎn)儲--也是與事件有關(guān)的。 

【編輯推薦】

  1. C與C++中標(biāo)準(zhǔn)輸入實現(xiàn)方式上的一點區(qū)別
  2. C++編譯器如何對Const常量進(jìn)行分配存儲空間
  3. C++類庫設(shè)計的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語言的幾種方法
  5. 如何更好的進(jìn)行C++代碼編制
責(zé)任編輯:chenqingxiang 來源: 博客園
相關(guān)推薦

2009-08-14 15:06:08

Windows服務(wù)程序

2009-08-14 11:00:16

C#創(chuàng)建Windows

2009-08-14 15:47:18

C#Windows服務(wù)

2009-08-14 14:25:09

Windows服務(wù)程序

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-22 13:59:34

Visual C++應(yīng)

2010-01-25 16:58:15

C++程序

2010-01-12 14:45:32

Visual C++

2009-08-12 15:20:21

C#事件處理

2009-08-14 14:17:16

C#Windows服務(wù)

2009-08-14 15:19:38

Windows服務(wù)程序Windows服務(wù)

2010-01-20 10:19:55

C++數(shù)組

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2010-01-13 14:18:52

Windows Emb

2010-01-22 14:28:24

使用C++

2010-01-11 10:34:22

C++程序

2009-09-02 17:28:26

C#程序設(shè)計Windows窗體

2009-08-14 16:41:22

C#啟動Windows

2009-08-25 09:39:21

創(chuàng)建C# Window
點贊
收藏

51CTO技術(shù)棧公眾號