青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

colorful

zc qq:1337220912

 

SetConsoleCtrlHandler

       有時(shí)候運(yùn)行在服務(wù)器上的控制臺(tái)程序,需要記錄詳細(xì)的運(yùn)行日志,這就需要對(duì)程序關(guān)閉進(jìn)行日志記錄,以便能根據(jù)日志了解程序的運(yùn)行狀況。比如正在運(yùn)行的程序被 人不小心關(guān)閉了,導(dǎo)致最終任務(wù)沒有運(yùn)行成功,這時(shí)日志也沒有錯(cuò)誤記錄,對(duì)分析原因造成不便,記錄了關(guān)閉事件日志后就能了解到這種情況是程序被終止了。這樣 注意通過消息鉤子來實(shí)現(xiàn),通過調(diào)用WIN32 API SetConsoleCtrlHandler方法來實(shí)現(xiàn),具體代碼如下:


using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;


namespace ConsoleColsed
{
    public delegate bool ConsoleCtrlDelegate(int ctrlType);
    class Program
    {
        [DllImport("kernel32.dll")]
        private static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate HandlerRoutine, bool Add);
        //當(dāng)用戶關(guān)閉Console時(shí),系統(tǒng)會(huì)發(fā)送次消息
        private const int CTRL_CLOSE_EVENT = 2;
        //Ctrl+C,系統(tǒng)會(huì)發(fā)送次消息
        private const int CTRL_C_EVENT = 0;
        //Ctrl+break,系統(tǒng)會(huì)發(fā)送次消息
        private const int CTRL_BREAK_EVENT = 1;
        //用戶退出(注銷),系統(tǒng)會(huì)發(fā)送次消息
        private const int CTRL_LOGOFF_EVENT = 5;
        //系統(tǒng)關(guān)閉,系統(tǒng)會(huì)發(fā)送次消息
        private const int CTRL_SHUTDOWN_EVENT = 6;

        static void Main(string[] args)
        {
            Program cls = new Program();
            //Console.ReadKey();
        }
        public Program()
        {
            ConsoleCtrlDelegate consoleDelegete = new ConsoleCtrlDelegate(HandlerRoutine);

            bool bRet = SetConsoleCtrlHandler(consoleDelegete, true);
            if (bRet == false) //安裝事件處理失敗
            {
                Debug.WriteLine("error");
            }
            else
            {
                Console.WriteLine("ok");
                Console.Read();
            }

        }

        private static bool HandlerRoutine(int ctrlType)
        {
            switch(ctrlType)
            {
                case CTRL_C_EVENT:
                    MessageBox.Show("C");
                    break;
                case CTRL_BREAK_EVENT:
                    MessageBox.Show("BREAK");
                    break;
                case CTRL_CLOSE_EVENT:
                    MessageBox.Show("CLOSE");
                    break;
                case CTRL_LOGOFF_EVENT:
                    break;
                case CTRL_SHUTDOWN_EVENT:
                    break;
            }
            //return true;//表示阻止響應(yīng)系統(tǒng)對(duì)該程序的操作
            return false;//忽略處理,讓系統(tǒng)進(jìn)行默認(rèn)操作
        }
    }
}

CTRL_CLOSE_EVENT 這些都是在C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinCon.h中定義的,c或者c++調(diào)用包含這個(gè)頭文件就可以。

return true的時(shí)候關(guān)閉的時(shí)候會(huì)產(chǎn)生應(yīng)用程序無法關(guān)閉的錯(cuò)誤,不知道什么原因。return false則不會(huì)。根據(jù)msdn上的方法說明 If the function handles the control signal, it should return TRUE. If it returns FALSE, the next handler function in the list of handlers for this process is used. 按照這個(gè)解釋,返回true也不應(yīng)該出現(xiàn)應(yīng)用程序無法關(guān)閉的錯(cuò)誤,不知道是什么原因。

posted on 2012-04-24 22:44 多彩人生 閱讀(1239) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            宅男噜噜噜66一区二区66| 亚洲欧洲在线看| 国产乱码精品| 欧美成人免费小视频| 亚洲欧美激情精品一区二区| 美女精品国产| 久久久综合网| 亚洲你懂的在线视频| 亚洲一区二区欧美日韩| 亚洲精品久久久久久久久久久久| 国产欧美一区二区三区在线老狼 | 久久久久一区| 久久精品亚洲一区二区三区浴池| 欧美亚洲一区在线| 欧美亚洲三区| 亚洲成人自拍视频| 亚洲人成在线播放| 亚洲私拍自拍| 欧美一区二区免费观在线| 欧美一级日韩一级| 免费在线观看一区二区| 国产精品久久久久av| 欧美香蕉视频| 很黄很黄激情成人| aaa亚洲精品一二三区| 亚洲一区影音先锋| 亚洲日本欧美在线| 亚洲精品视频一区二区三区| 中文精品在线| 裸体女人亚洲精品一区| 亚洲国产成人精品视频| 亚洲欧美日本伦理| 欧美精品一区二区三区一线天视频 | 欧美精品www在线观看| 国产亚洲午夜| 亚洲欧美www| 91久久精品视频| 毛片精品免费在线观看| 激情五月综合色婷婷一区二区| 亚洲一区二区三区精品在线| 欧美国产先锋| 久久久久国产精品厨房| 国产精品亚洲片夜色在线| 亚洲国产欧美久久| 久久人人爽爽爽人久久久| 欧美一区二区三区男人的天堂| 国产欧美日韩免费看aⅴ视频| 一区二区三区你懂的| 在线亚洲精品| 国产亚洲成人一区| 午夜亚洲一区| 久久综合久色欧美综合狠狠| 亚洲欧洲日韩在线| 亚洲欧洲日产国码二区| 国产精品进线69影院| 久久久久成人精品| 午夜伦理片一区| 久久久久久夜| 午夜精品在线| 欧美精品黄色| 久久夜色精品国产噜噜av| 亚洲一区在线直播| 久久阴道视频| 午夜亚洲激情| 欧美大片在线看| 亚洲免费小视频| 免费视频最近日韩| 久久久噜噜噜久久久| 国产精品久久久久高潮| 日韩网站在线看片你懂的| 亚洲激情黄色| 久久久无码精品亚洲日韩按摩| 香蕉久久夜色精品国产| 国产精品99免费看| 亚洲精品久久7777| 亚洲国产中文字幕在线观看| 久久精品2019中文字幕| 欧美一级在线视频| 欧美亚洲成人精品| 日韩小视频在线观看专区| 99精品欧美一区二区蜜桃免费| 久久这里只精品最新地址| 亚洲国产高潮在线观看| 亚洲伦伦在线| 欧美日韩一区二区在线观看视频| 亚洲春色另类小说| 一区二区三区视频免费在线观看| 一区二区三区回区在观看免费视频| 好男人免费精品视频| 久久久亚洲影院你懂的| 亚洲精品一区二| 久久久精品国产一区二区三区| 国产日韩欧美另类| 欧美成人在线免费视频| 一区二区av| 国产精品久久久久久影院8一贰佰| 一区二区三区不卡视频在线观看| 亚洲欧洲99久久| 亚洲激情网站免费观看| 国产精品九色蝌蚪自拍| 久久米奇亚洲| 亚洲免费在线观看| 亚洲欧洲另类| 欧美成人亚洲成人日韩成人| 亚洲视频1区2区| 欧美日韩美女在线| 久久久99免费视频| 亚洲一区观看| 日韩视频免费观看| 亚洲人妖在线| 美女久久网站| 久久综合九色综合欧美狠狠| 99国产精品国产精品久久| 亚洲二区视频| 欧美日韩高清在线| 欧美国产视频在线| 久久久精品国产99久久精品芒果| 亚洲综合久久久久| 午夜在线视频观看日韩17c| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美亚洲视频在线观看| 亚洲一区日韩在线| 一本色道久久| 一区二区三区**美女毛片| 国产午夜亚洲精品理论片色戒| 亚洲日本欧美| 亚洲人成艺术| 亚洲欧美日韩国产成人| 日韩视频精品在线| 欧美影院视频| 欧美日韩精品一本二本三本| 欧美色大人视频| 欧美日韩国产影院| 国产小视频国产精品| 亚洲精品视频中文字幕| 亚洲一区二区三区欧美| 嫩草影视亚洲| 亚洲精品乱码久久久久久| 亚洲精品一区二| 亚洲自拍偷拍色片视频| 美女视频黄a大片欧美| 欧美性猛交xxxx乱大交蜜桃 | 亚洲一区二区三区中文字幕在线 | 亚洲老板91色精品久久| 一区二区不卡在线视频 午夜欧美不卡'| 一区二区av在线| 最新高清无码专区| 久久免费99精品久久久久久| 欧美色欧美亚洲高清在线视频| 国产精品视频999| 一区二区精品| 亚洲电影自拍| 欧美一区二区三区啪啪| 欧美日韩一区二区三区四区五区 | 欧美激情1区| 亚洲七七久久综合桃花剧情介绍| 一本色道久久88综合亚洲精品ⅰ | 欧美专区亚洲专区| 久久成人国产| 亚洲综合色自拍一区| 国产区欧美区日韩区| 久久精品亚洲国产奇米99| 亚洲自啪免费| 亚洲国产成人久久| 亚洲精品一级| 精品福利av| 亚洲最新合集| 国产一区二区三区久久久| 你懂的视频欧美| 欧美亚一区二区| 久久艳片www.17c.com| 欧美劲爆第一页| 欧美 日韩 国产精品免费观看| 在线高清一区| 香蕉成人啪国产精品视频综合网| 一区二区视频在线观看| 亚洲调教视频在线观看| 精品9999| 午夜精品一区二区三区四区| 亚洲高清免费视频| 久久av一区二区| 久久精品国产99国产精品澳门 | 在线亚洲一区观看| 亚洲第一页在线| 久久精品亚洲一区| 欧美伊人久久大香线蕉综合69| 欧美成黄导航| 亚洲精品久久在线| 一本色道综合亚洲| 欧美日韩综合网| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美国产日韩a欧美在线观看| 国产精品av久久久久久麻豆网| 亚洲精品国精品久久99热| 亚洲卡通欧美制服中文| 久久免费视频这里只有精品| 久久成人免费电影| 欧美日韩中文字幕精品| 欧美大香线蕉线伊人久久国产精品| 国产精品久久国产愉拍 |