在CB程式中控制Windows關機

來源:互聯網
上載者:User

我們在應用程式編製完成後,需要設計應用程式的封裝和分發功能。在編寫安裝程式時,經常會遇到這樣的問題:程式安裝完成後需要重新啟動電腦。那麼在代碼中如何控制Windows的關機或重新啟動呢?

要實現這個功能,需要用到Windows API提供的一個ExitWindowsEx函數。我們可以通過查看C++ Builder提供的協助檔案得到這個函數的使用格式:

BOOL ExitWindowsEx(
   UINT uFlags, // 設定關機參數
   DWORD dwReserved // 系統保留字
   );

其中uFlags的主要設定值及意義見表1。

dwReserved是系統保留字,隨便填入個0即可。

瞭解ExitWindowsEx函數的使用格式後,下面以執行個體說明在C++ Builder中控制Windows關機或重新啟動的方法。

設計步驟如下:

1.運行C++ Builder系統後,先啟用選單“File/New Application”,建立一個新工程。

2.啟用選單“File/Save As”把表單單元以檔案名稱exitu.cpp存檔,然後啟用選單“File/Save Project As”把工程檔案以檔案名稱exitp.bpr存檔。(注意:工程檔案名稱與表單單元檔案名稱不要同名。)

3.在表單上增加四個TButton組件Button1、Button2、Button3和Button4,分別設定它們的Caption屬性為“其它身份登入”、“關機”、“重新啟動”和“強制關機”。

4.分別設定Button1、Button2、Button3和Button4組件的OnClick事件響應代碼如下:

  void __fastcall TForm1::Button1Click(TObject Sender)
   {
   //其它身份登入
   DWORD temp;
   ExitWindowsEx(EWX_LOGOFF,temp);
   }
   //------------------------------
   void __fastcall TForm1::Button2Click(TObject Sender)
   {
   //關機
   DWORD temp;
   ExitWindowsEx(EWX_SHUTDOWN,temp);
   }
   //------------------------------
   void __fastcall TForm1::Button3Click(TObject Sender)
   {
   //重新啟動
   DWORD temp;
   ExitWindowsEx(EWX_REBOOT,temp);
   }
   //------------------------------
   void __fastcall TForm1::Button4Click(TObject Sender)
   {
   //強制關機
   DWORD temp;
   ExitWindowsEx(EWX_FORCE,temp);
   }

表1設定值 簡要意義

EWX_FORCE 強制終止程式運行而退出系統

EWX_LOGOFF 退出而以其它身份登入

EWX_REBOOT 重新啟動

EWX_SHUTDOWN 關機

5.運行程式後,分別單擊四個按鈕測試它們的功能。如果能完成各種設定的功能,說明你已成功了,那麼就可以將本文介紹的方法運用到自己開發的C++ Builder應用程式中去控制Windows的關閉了。

本程式在中文Windows 98、C++ Builder 5.0環境下運行通過。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.