我們在應(yīng)用程序編制完成后,需要設(shè)計(jì)應(yīng)用程序的包裝和分發(fā)功能。在編寫安裝程序時(shí),經(jīng)常會遇到這樣的問題:程序安裝完成后需要重新啟動計(jì)算機(jī)。那么在代碼中如何控制Windows的關(guān)機(jī)或重新啟動呢?
要實(shí)現(xiàn)這個(gè)功能,需要用到Windows API提供的一個(gè)ExitWindowsEx函數(shù)。我們可以通過查看C++ Builder提供的幫助文件得到這個(gè)函數(shù)的使用格式
BOOL ExitWindowsEx(
UINT uFlags,
// 設(shè)置關(guān)機(jī)參數(shù)
DWORD dwReserved
// 系統(tǒng)保留字
);
設(shè)置uFlags的參數(shù)說明:
EWX_FORCE 強(qiáng)制終止程序運(yùn)行而退出系統(tǒng)
EWX_LOGOFF 退出而以其它身份登錄
EWX_REBOOT 重新啟動
EWX_SHUTDOWN 關(guān)機(jī)
dwReserved是系統(tǒng)保留字,隨便填入個(gè)0即可。
了解ExitWindowsEx函數(shù)的使用格式后,下面以實(shí)例說明在C++ Builder中控制Windows關(guān)機(jī)或重新啟動的方法。
設(shè)計(jì)步驟如下:
1.運(yùn)行C++ Builder系統(tǒng)后,先激活選單“File/New Application”,創(chuàng)建一個(gè)新工程。
2.激活選單“File/Save As”把窗體單元以文件名exitu.cpp存盤,然后激活選單“File/Save Project As”把工程文件以文件名exitp.bpr存盤。(注意:工程文件名與窗體單元文件名不要同名。)
3.在窗體上增加四個(gè)TButton組件Button1、Button2、Button3和Button4,分別設(shè)置它們的Caption屬性為“其它身份登錄”、“關(guān)機(jī)”、“重新啟動”和“強(qiáng)制關(guān)機(jī)”。
要實(shí)現(xiàn)這個(gè)功能,需要用到Windows API提供的一個(gè)ExitWindowsEx函數(shù)。我們可以通過查看C++ Builder提供的幫助文件得到這個(gè)函數(shù)的使用格式
BOOL ExitWindowsEx(
UINT uFlags,
// 設(shè)置關(guān)機(jī)參數(shù)
DWORD dwReserved
// 系統(tǒng)保留字
);
設(shè)置uFlags的參數(shù)說明:
EWX_FORCE 強(qiáng)制終止程序運(yùn)行而退出系統(tǒng)
EWX_LOGOFF 退出而以其它身份登錄
EWX_REBOOT 重新啟動
EWX_SHUTDOWN 關(guān)機(jī)
dwReserved是系統(tǒng)保留字,隨便填入個(gè)0即可。
了解ExitWindowsEx函數(shù)的使用格式后,下面以實(shí)例說明在C++ Builder中控制Windows關(guān)機(jī)或重新啟動的方法。
設(shè)計(jì)步驟如下:
1.運(yùn)行C++ Builder系統(tǒng)后,先激活選單“File/New Application”,創(chuàng)建一個(gè)新工程。
2.激活選單“File/Save As”把窗體單元以文件名exitu.cpp存盤,然后激活選單“File/Save Project As”把工程文件以文件名exitp.bpr存盤。(注意:工程文件名與窗體單元文件名不要同名。)
3.在窗體上增加四個(gè)TButton組件Button1、Button2、Button3和Button4,分別設(shè)置它們的Caption屬性為“其它身份登錄”、“關(guān)機(jī)”、“重新啟動”和“強(qiáng)制關(guān)機(jī)”。