伸进女同桌乳沟里摸爽了,小雪解开乳罩给老杨摸,少妇被按摩师摸高潮了,亲嘴扒胸摸屁股激烈视频,强摸秘书人妻大乳BD,摸BBB揉BBB揉BBB视频

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術 網站建設
  您現在的位置: 新疆二域軟件開發(fā)公司 >> .Net技術 >> 文章正文

在VC 程序中自定義Vista事件日志

就Windows開發(fā)者及系統(tǒng)管理員來說,Windows Vista日志相比以前,無疑有了一個很大的提高。對開發(fā)者來說,Vista的日志記錄對多種事件與日志選項,都表現出統(tǒng)一一致性;而對網絡管理員及IT專家,它提供了豐富的人機界面用于管理事件。新的日志記錄方式,也只能通過Windows SDK中新的本機函數來實現,下面就來看看怎樣在程序中實現新的記錄方式。

創(chuàng)建并編譯清單文件

如果程序中使用了新的API,且要把事件記錄到日志中,就需要創(chuàng)建一個清單文件(這里補充一點,如果未使用新的API,或僅是使用托管程序,日志記錄還是繼續(xù)使用原來的ReportEvent* API)。清單文件是程序中所有事件基于XML格式的表現形式,我們可使用命令行的消息編譯器(MC.exe),利用清單文件來生成一個頭文件(*.h)及一個資源文件(*.rc)——僅限于用在C++工程中。(有關事件日志清單文件的詳細說明,請查閱MSDN聯機文檔,在本文中只提及了其中的一小部分。)
在清單文件中,最重要的元素就是指明了哪個“通道”(channel)可以被寫入,“通道”是Vista事件日志中一個新的概念,它根據接收者及卷,為事件提供了單獨的輸出。示例程序中使用了兩個通道:操作性(Operational)通道及調試(Debug)通道,以下的XML指定了程序將使用這兩種通道來引發(fā)事件:



在定義好通道之后,下一步就是定義一個模板以指定要引發(fā)事件的基本形態(tài)。與原來的事件日志API類似,Vista事件日志也支持使用%1這樣的通配符,以便可替換為本地化語言的文本,這樣,消息文本的所有內容都可在運行時才提供:




最后,還需要把應用程序實際將引發(fā)的事件添加到清單文件中,為簡單起見,對每個通道只定義了一個事件,且都使用同一個模板:


現在,消息編譯器(mc.exe)就可以把這個清單文件編譯為頭文件及資源文件了。


引發(fā)事件

實際上,在程序中引發(fā)事件是相當地簡單(至少與定義清單文件相比是這樣的),正如前面所提到的,消息編譯器生成了包含有事件及事件發(fā)布者定義的頭文件,這些信息都可傳遞給SDK函數,對上面的清單文件而言,頭文件將會包含以下定義:

EXTERN_C __declspec(selectany) const GUID DOTNETPERFORMANCE_TECHNICALWRITING_PUBLISHER = { 0x9cde86c9, 0xdfb9, 0x463f, {0xb2, 0xc5,0x71,0xee,0xc2,0x32, 0xa6,0x9c}}; #define DOTNETPERFORMANCEOP 0x10 #define DOTNETPERFORMANCEDEBUG 0x0 EXTERN_C __declspec(selectany) const EVENT_DESCRIPTOR OP_EVENT = { 0x1, 0x0, 0x10, 0x4, 0x0, 0x0, 0x8000000000000000}; #define DNP_OP_EVENT_value 0x1 EXTERN_C __declspec(selectany) const EVENT_DESCRIPTOR DEBUG_EVENT = {0x2, 0x0, 0x0, 0x4, 0x0, 0x0, 0x4000000000000000}; #define DNP_DEBUG_EVENT_value 0x2 #define MSG_SimpleMessage 0xB0000001L

接下來,要在代碼中包含以下頭文件:windows.h(如果為控制臺程序)、evntprov.h(其包含了所有的Windows事件跟蹤)、winevt.h(其包含了所有新的Vista日志聲明);另外,可通過調用EventRegister來注冊事件發(fā)布者:


REGHANDLE hPub = NULL; EventRegister( &DOTNETPERFORMANCE_TECHNICALWRITING_PUBLISHER, NULL, NULL, &hPub); 實際上,引發(fā)一個事件非常之簡單:創(chuàng)建一個事件描述符并把它傳遞給EventWrite函數就可以了:

EVENT_DATA_DESCRIPTOR opEventDesc; PWSTR pwsOp = L"My Operational Event"; EventDataDescCreate(&opEventDesc, pwsOp, ((ULONG)wcslen(pwsOp)+1)*sizeof(WCHAR)); EventWrite(hPub, &DNP_OP_EVENT, 1, &opEventDesc);

代碼中的宏EventDataDescCreate定義在頭文件evntprov.h中,它只是提供了一種更短的語法用于設置變量EVENT_DATA_DESCRIPTOR的成員。

如果不再需要為特定發(fā)布者寫入事件,可取消注冊:
EventUnregister(hPub)

部署及使用

在部署程序之前,還需要使用以下命令來注冊清單文件:

wevtutil install-manifest 清單文件名.xml

Windows Vista自帶的wevtutil工具,將會解析清單文件并添加所需的設置到Vista日志記錄中;如果未運行wevtutil,事件仍可被成功引發(fā),但在事件日志中將不可見。

作者:未知 | 文章來源:自學編程網 | 更新時間:2008-1-8 18:25:44

  • 上一篇文章:

  • 下一篇文章:

  • 相關文章:
    j2se 嵌入式腳本抓取引擎
    NET Framework 2.0 Service Pack 2下載地址
    丟失日志文件后數據庫還能不能恢復了
    解析.NET中的6各大的安全錯誤
    .NET中Boolean,bool以及String,string之間的區(qū)別
    .Net FrameWork 2.0 新增功能 Bulk Copy
    教程:.Net多線程和Windows Forms編程
    C++函數對象count_if
    語法C# 問關鍵字之:base、this
    C#中“+”的兩種功能
    軟件技術
    · 開發(fā)語言
    · Java技術
    · .Net技術
    · 數據庫開發(fā)
    最新文章  
    ·.net技術 asp.net MVC3 Vi
    ·.net將視頻文件格式轉換成
    ·NET Framework 2.0 Servic
    ·如何動態(tài)修改winform的app
    ·asp,net軟件結構設計和相關
    ·學習怎樣使用ASP.NET中的虛
    ·,net基礎類的學習:system
    ·.net學習:c#事件的深入分
    ·Facade Pattern學習總結
    ·C#如何設置或者獲取目錄的
    ·如何使用XSL來定義ASP.NET
    ·理解WCF Data Contract契約
    ·如何能在.net2.0開發(fā)的控件
    ·模式怎樣使用,講解模式的
    ·如何解決Menu菜單被frame遮
    關于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯系我們 | 友情鏈接 | 網站地圖 | 新疆電子地圖 | RSS訂閱
    版權所有 © 2016 新疆二域軟件開發(fā)網 m.zgna.net All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯大廈A-5C 郵編:830000
     
    乌拉特后旗| 静乐县| 甘南县| 株洲市| 南陵县| 龙陵县| 肇庆市| 蒙阴县| 宝山区| 陕西省| 平陆县| 敦煌市| 乡城县| 赤峰市| 仙居县| 友谊县| 乡城县| 安远县| 井冈山市| 普兰店市| 博客| 平邑县| 景德镇市| 黄梅县| 桐城市| 鸡泽县| 曲麻莱县| 登封市| 将乐县| 镇赉县| 德保县| 枞阳县| 浦江县| 天全县| 修武县| 收藏| 浦县| 明水县| 德化县| 高雄市| 忻州市|