程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 在CB程序中控制Windows關機

在CB程序中控制Windows關機

編輯:關於C++

我們在應用程序編制完成後,需要設計應用程序的包裝和分發功能。在編寫安裝程序時,經常會遇到這樣的問題:程序安裝完成後需要重新啟動計算機。那麼在代碼中如何控制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環境下運行通過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved