天天看點

C#注冊控件處理程式(SetConsoleCtrlHandler)函數示例 控制台關閉事件改寫

添加或删除應用程式定義的HandlerRoutine從調用程序的處理函數清單功能。

Win32 API

功能:

函數原型:

BOOL SetConsoleCtrlHandler(

PHANDLER_ROUTINE HandlerRoutine, // 回調函數

BOOL Add // 表示添加還是删除

);

傳回值:BOOL類型

參數

參數HandlerRoutine:一個應用程式定義的指針HandlerRoutine 功能要添加或删除。 這個參數可以是NULL。

參數Add:如果此參數為TRUE,處理程式添加,如果是假的,該處理程式将被删除。

傳回值:

如果函數失敗,傳回值為0.否則,傳回一個非0值。 若想獲得更多錯誤資訊,調用GetLastError函數 。

說白了,就是一個系統調用。

第一個參數是函數指針,就是上面的那個函數。第二個參數是标志,如果為TRUE那麼就安裝鈎子,如果為FALSE那麼删除鈎子。

利用Windows API 攔截Console的手動關閉事件的消息,來實作,下面我給出的是一個完整的事例:

參考:http://msdn.microsoft.com/en-us/library/ms686016(v=vs.85).aspx

繼續閱讀