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

colorful

zc qq:1337220912

 

SetConsoleCtrlHandler

       有時候運行在服務器上的控制臺程序,需要記錄詳細的運行日志,這就需要對程序關閉進行日志記錄,以便能根據日志了解程序的運行狀況。比如正在運行的程序被 人不小心關閉了,導致最終任務沒有運行成功,這時日志也沒有錯誤記錄,對分析原因造成不便,記錄了關閉事件日志后就能了解到這種情況是程序被終止了。這樣 注意通過消息鉤子來實現,通過調用WIN32 API SetConsoleCtrlHandler方法來實現,具體代碼如下:


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);
        //當用戶關閉Console時,系統會發送次消息
        private const int CTRL_CLOSE_EVENT = 2;
        //Ctrl+C,系統會發送次消息
        private const int CTRL_C_EVENT = 0;
        //Ctrl+break,系統會發送次消息
        private const int CTRL_BREAK_EVENT = 1;
        //用戶退出(注銷),系統會發送次消息
        private const int CTRL_LOGOFF_EVENT = 5;
        //系統關閉,系統會發送次消息
        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;//表示阻止響應系統對該程序的操作
            return false;//忽略處理,讓系統進行默認操作
        }
    }
}

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

return true的時候關閉的時候會產生應用程序無法關閉的錯誤,不知道什么原因。return false則不會。根據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. 按照這個解釋,返回true也不應該出現應用程序無法關閉的錯誤,不知道是什么原因。

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


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

統計

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美+日本+国产+在线a∨观看| 美日韩精品免费观看视频| 亚洲人成网站777色婷婷| 麻豆免费精品视频| 亚洲电影观看| 亚洲国产免费看| 欧美男人的天堂| 亚洲欧美综合网| 欧美一区二区三区男人的天堂| 国产在线精品二区| 亚洲国产精品成人精品| 欧美日韩精品免费| 午夜欧美电影在线观看| 久久免费国产| 在线视频日韩精品| 欧美在线观看视频一区二区| 亚洲大胆人体视频| 99国产精品99久久久久久粉嫩 | 亚洲免费电影在线| 国产精品你懂得| 免费成人你懂的| 欧美日本韩国| 久久精品最新地址| 欧美www在线| 午夜亚洲激情| 免费亚洲电影在线| 午夜一区二区三区在线观看| 裸体一区二区三区| 欧美亚洲日本网站| 免费看黄裸体一级大秀欧美| 亚洲综合激情| 欧美插天视频在线播放| 久久黄金**| 欧美日韩国产在线播放网站| 久久久一区二区| 欧美婷婷六月丁香综合色| 久久全国免费视频| 欧美午夜不卡在线观看免费 | 欧美精品国产一区二区| 篠田优中文在线播放第一区| 久久综合五月| 欧美在线日韩在线| 欧美日韩国产一级片| 久久九九久精品国产免费直播| 欧美精品1区| 免费在线亚洲欧美| 国产精品亚洲一区| 亚洲精品一区二区三区不| 在线免费观看成人网| 午夜国产精品视频| 亚洲女同精品视频| 欧美日韩精品免费观看| 亚洲国产另类久久久精品极度| 国产日本欧美一区二区三区| 亚洲视频精品在线| 亚洲一区二区三区精品在线| 欧美国产日韩a欧美在线观看| 欧美 日韩 国产 一区| 狠狠色综合一区二区| 午夜精品久久久久久久男人的天堂 | 欧美日韩亚洲一区三区| 亚洲日韩成人| 亚洲精品资源| 欧美粗暴jizz性欧美20| 亚洲第一在线综合在线| 亚洲欧洲一区二区三区| 蜜桃伊人久久| 亚洲国产另类精品专区 | 欧美色中文字幕| 亚洲精品永久免费| 在线亚洲观看| 国产精品免费福利| 亚洲综合国产激情另类一区| 亚洲欧美日韩在线不卡| 国产精品一级久久久| 欧美一级久久| 久久只有精品| 亚洲日本中文字幕区| 欧美日韩国产小视频| 日韩视频不卡中文| 欧美一区二区免费观在线| 国产欧美va欧美va香蕉在| 欧美一区二区视频在线观看2020| 久久狠狠亚洲综合| 在线观看亚洲精品视频| 欧美精品久久一区| 亚洲免费在线| 免费观看30秒视频久久| 日韩一区二区免费高清| 国产精品www色诱视频| 午夜一区不卡| 亚洲国产精品t66y| 亚洲在线视频免费观看| 国产一区二区久久| 欧美成人资源网| 亚洲一区视频在线| 欧美激情久久久| 午夜视频在线观看一区二区三区| 国模套图日韩精品一区二区| 欧美高清免费| 欧美亚洲日本网站| 亚洲电影免费| 欧美在线播放一区二区| 亚洲日本欧美天堂| 国产区在线观看成人精品| 欧美不卡三区| 久久gogo国模啪啪人体图| 亚洲精品自在在线观看| 久久婷婷一区| 亚洲欧美日韩国产一区二区| 亚洲国产成人不卡| 国产麻豆精品久久一二三| 欧美国产日韩亚洲一区| 久久都是精品| 亚洲色诱最新| 亚洲精品字幕| 欧美大片免费| 久久免费高清| 香蕉久久一区二区不卡无毒影院| 亚洲欧洲免费视频| 国产在线拍偷自揄拍精品| 欧美日韩在线观看一区二区| 久久一本综合频道| 久久av免费一区| 亚洲欧美色婷婷| 亚洲一区二区精品视频| 亚洲精品久久久久久一区二区| 免费在线观看一区二区| 久久久国际精品| 欧美一二三区在线观看| 亚洲欧美在线x视频| 宅男噜噜噜66一区二区 | 国产精品亚洲综合色区韩国| 欧美激情一区二区三区在线视频 | 99pao成人国产永久免费视频| 欧美不卡视频| 美脚丝袜一区二区三区在线观看 | 亚洲激情网站免费观看| 在线播放亚洲| 在线观看视频一区二区欧美日韩| 国产综合久久久久久| 国产一区二区三区av电影 | 国产麻豆精品视频| 国产精品久久久999| 国产精品二区三区四区| 欧美四级剧情无删版影片| 欧美网站在线观看| 欧美日韩精品免费在线观看视频| 欧美激情国产高清| 欧美日韩理论| 国产精品激情电影| 国产欧美日韩精品丝袜高跟鞋| 国产精品日韩在线观看| 国产美女精品人人做人人爽| 国产日韩欧美| 亚洲高清视频在线观看| 亚洲精品一区二区三| 一区二区免费在线观看| 亚洲综合三区| 久久久久久一区二区| 欧美成人精品福利| 亚洲高清免费在线| 一本大道av伊人久久综合| 亚洲免费在线| 久久综合影视| 欧美精品九九| 国产噜噜噜噜噜久久久久久久久| 国产在线麻豆精品观看| 亚洲精品免费在线观看| 亚洲一区二区免费在线| 久久精品在这里| 亚洲欧洲一区二区三区在线观看| 亚洲免费电影在线观看| 午夜精品福利在线观看| 模特精品裸拍一区| 国产精品福利在线观看| 韩国av一区二区三区| 亚洲精品一区二| 久久成人免费网| 亚洲国产网站| 欧美一区二区视频在线观看| 欧美jizz19性欧美| 国产精品自在线| 亚洲精品久久7777| 久久国产精品99国产| 欧美激情中文字幕在线| 午夜精品一区二区在线观看| 蜜臀久久99精品久久久画质超高清 | 欧美高潮视频| 国产日韩欧美一区二区三区四区| 亚洲精品国产精品国自产观看| 欧美一级午夜免费电影| 亚洲区欧美区| 久久久999精品视频| 国产精品久久久久久久一区探花| 在线日本成人| 久久精品一区二区三区四区| 亚洲精品国产日韩| 久久人人爽人人| 国产午夜精品理论片a级探花 |