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

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、圖們ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的圖們網(wǎng)站制作公司
.NET 1.0/1.1托管C++程序,如果你在使用一個(gè)更高版本的 .NET,需要在工程屬性對(duì)話框中設(shè)置/clr:oldSyntax編譯選項(xiàng),或調(diào)整以下代碼使之符合新的托管語(yǔ)法。用于Windows事件日志的關(guān)鍵 .NET類(lèi)型是Diagnostics::EventLog類(lèi)。
1、定義一個(gè)托管類(lèi)并實(shí)現(xiàn)事件日志通知處理程序
處理程序(OnNewLogEntry)會(huì)在"新事件日志項(xiàng)"事件引發(fā)時(shí)調(diào)用,同時(shí),請(qǐng)注意此處的EntryWrittenEventHandler,以下是示例代碼:
- __gc class NewLogEntryEventHandler
- {
- public:
- NewLogEntryEventHandler() {}
- public:
- void OnNewLogEntry(Object* sender, EntryWrittenEventArgs* e)
- {
- //獲取并處理最近創(chuàng)建的項(xiàng)
- EventLogEntry* eentry = e->Entry;
- }
- };
2、實(shí)例化一個(gè)EventLog對(duì)象,并把它的EnableRaisingEvents屬性設(shè)為true
屬性EventLog::EnableRaisingEvents是一個(gè)布爾類(lèi)型,其控制了在項(xiàng)目添加到EventLog對(duì)象指定的日志時(shí),是否引發(fā)事件:
- EventLog* log = new EventLog("Application");
- log->EnableRaisingEvents = true;
3、把事件處理程序連接到"新事件日志項(xiàng)"事件
首先,實(shí)例化定義了事件處理程序的對(duì)象(在此例中為NewLogEntryEventHandler),接著,把事件方法(OnNewLogEntry)添加到EventLog::EntryWritten的事件處理程序列表中:
- NewLogEntryEventHandler* handler = new NewLogEntryEventHandler();
- log->EntryWritten +=
- new EntryWrittenEventHandler( handler,&NewLogEntryEventHandler::OnNewLogEntry);
4、為特定事件的處理編寫(xiě)代碼
回過(guò)頭來(lái)看一個(gè)OnNewLogEntry方法,可以看到傳遞給事件處理程序的EntryWrittenEventArgs對(duì)象有一個(gè)名為EventLogEntry的成員,其包含了有關(guān)記錄項(xiàng)目的詳細(xì)情況,具體為以下屬性:
- ·MachineName--創(chuàng)建事件日志的電腦系統(tǒng)名。
- ·Source--創(chuàng)建此事件的事件源或程序源。
- ·Message--用戶(hù)可在事件查看器中讀取這條文本值,其描述了記錄的事件。
- ·Event Type--此值(代表了EventLogEntryType)為一個(gè)枚舉值,其代表記錄的事件類(lèi)型:信息(默認(rèn))、警告、錯(cuò)誤、審核成功、審核失敗。
- ·Event ID--為有關(guān)事件程序特定的號(hào)碼。
- ·Data--此值通常用于存儲(chǔ)二進(jìn)制信息--如內(nèi)存轉(zhuǎn)儲(chǔ)--也是與事件有關(guān)的。
當(dāng)前標(biāo)題:淺析C++程序監(jiān)視Windows事件日志
文章源于:http://fisionsoft.com.cn/article/cdehhhi.html


咨詢(xún)
建站咨詢(xún)
