在C++ Builder程序中控制Windows關(guān)機(jī)
更新時(shí)間: 2007-05-22 17:52:40來源: 粵嵌教育瀏覽量:982
我們?cè)趹?yīng)用程序編制完成后,需要設(shè)計(jì)應(yīng)用程序的包裝和分發(fā)功能。在編寫安裝程序時(shí),經(jīng)常會(huì)遇到這樣的問題:程序安裝完成后需要重新啟動(dòng)計(jì)算機(jī)。那么在代碼中如何控制Windows的關(guān)機(jī)或重新啟動(dòng)呢?
要實(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)保留字
);
其中uFlags的主要設(shè)置值及意義見表1。
dwReserved是系統(tǒng)保留字,隨便填入個(gè)0即可。
了解ExitWindowsEx函數(shù)的使用格式后,下面以實(shí)例說明在C++ Builder中控制Windows關(guān)機(jī)或重新啟動(dòng)的方法。
設(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ī)”、“重新啟動(dòng)”和“強(qiáng)制關(guān)機(jī)”。
4.分別設(shè)置Button1、Button2、Button3和Button4組件的OnClick事件響應(yīng)代碼如下:
void __fastcall TForm1::Button1Click(TObject Sender)
{
//其它身份登錄
DWORD temp;
ExitWindowsEx(EWX_LOGOFF,temp);
}
//------------------------------
void __fastcall TForm1::Button2Click(TObject Sender)
{
//關(guān)機(jī)
DWORD temp;
ExitWindowsEx(EWX_SHUTDOWN,temp);
}
//------------------------------
void __fastcall TForm1::Button3Click(TObject Sender)
{
//重新啟動(dòng)
DWORD temp;
ExitWindowsEx(EWX_REBOOT,temp);
}
//------------------------------
void __fastcall TForm1::Button4Click(TObject Sender)
{
//強(qiáng)制關(guān)機(jī)
DWORD temp;
ExitWindowsEx(EWX_FORCE,temp);
}
表1 設(shè)置值
簡(jiǎn)要意義
EWX_FORCE
強(qiáng)制終止程序運(yùn)行而退出系統(tǒng)
EWX_LOGOFF
退出而以其它身份登錄
EWX_REBOOT
重新啟動(dòng)
EWX_SHUTDOWN
關(guān)機(jī)
5.運(yùn)行程序后,分別單擊四個(gè)按鈕測(cè)試它們的功能。如果能完成各種設(shè)置的功能,說明你已成功了,那么就可以將本文介紹的方法運(yùn)用到自己開發(fā)的C++ Builder應(yīng)用程序中去控制Windows的關(guān)閉了。
本程序在中文Windows 98、C++ Builder 5.0環(huán)境下運(yùn)行通過。
粵嵌動(dòng)態(tài)
推薦閱讀
- ·Linux字符設(shè)備驅(qū)動(dòng)框架解析:file_operations的核心作用與實(shí)現(xiàn)
- ·廣東朝歌數(shù)碼科技股份有限公司專場(chǎng)招聘會(huì)
- ·深化產(chǎn)教融合,共筑技能人才培養(yǎng)新生態(tài) —— 廣州華立學(xué)院到訪粵嵌從化校區(qū)為深化產(chǎn)教
- ·校企合作新突破 | 粵嵌科技與三亞學(xué)院共探產(chǎn)教融合新路徑
- ·粵嵌科技入選國(guó)家級(jí)職業(yè)數(shù)字展館聯(lián)合建設(shè)單位,賦能計(jì)算機(jī)程序設(shè)計(jì)員高技能人才培養(yǎng)
- ·嵌入式實(shí)時(shí)操作系統(tǒng)的性能優(yōu)化與實(shí)現(xiàn)路徑
- ·校企攜手賦能教育!粵嵌科技助力海南科技職業(yè)大學(xué)探索 AGI 時(shí)代教學(xué)新范式
- ·嵌入式系統(tǒng)中的低功耗設(shè)計(jì)策略與實(shí)現(xiàn)路徑
- ·深圳市軒宇軟件開發(fā)有限公司專場(chǎng)招聘會(huì)
- ·嵌入式系統(tǒng)中的代碼空間優(yōu)化:策略與實(shí)踐