国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

在 C++ 中控制Windows關(guān)機

2004-02-14 eNet&Ciweek

  我們在應(yīng)用程序編制完成后,需要設(shè)計應(yīng)用程序的包裝和分發(fā)功能。在編寫安裝程序時,經(jīng)常會遇到這樣的問題:程序安裝完成后需要重新啟動計算機。那么在代碼中如何控制Windows的關(guān)機或重新啟動呢?

  要實現(xiàn)這個功能,需要用到Windows API提供的一個ExitWindowsEx函數(shù)。我們可以通過查看C++ Builder提供的幫助文件得到這個函數(shù)的使用格式:

  BOOL ExitWindowsEx(

  UINT uFlags,

  // 設(shè)置關(guān)機參數(shù)

  DWORD dwReserved

  // 系統(tǒng)保留字

   );

  其中uFlags的主要設(shè)置值及意義見表1。

  dwReserved是系統(tǒng)保留字,隨便填入個0即可。

  了解ExitWindowsEx函數(shù)的使用格式后,下面以實例說明在C++ Builder中控制Windows關(guān)機或重新啟動的方法。

  設(shè)計步驟如下:

  1.運行C++ Builder系統(tǒng)后,先激活選單“File/New Application”,創(chuàng)建一個新工程。

  2.激活選單“File/Save As”把窗體單元以文件名exitu.cpp存盤,然后激活選單“File/Save Project As”把工程文件以文件名exitp.bpr存盤。(注意:工程文件名與窗體單元文件名不要同名。)

  3.在窗體上增加四個TButton組件Button1、Button2、Button3和Button4,分別設(shè)置它們的Caption屬性為“其它身份登錄”、“關(guān)機”、“重新啟動”和“強制關(guān)機”。

  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)機

   DWORD temp;

   ExitWindowsEx(EWX_SHUTDOWN,temp);

  }

  //------------------------------

  void __fastcall TForm1::Button3Click(TObject Sender)

  {

   //重新啟動

   DWORD temp;

   ExitWindowsEx(EWX_REBOOT,temp);

  }

  //------------------------------

  void __fastcall TForm1::Button4Click(TObject Sender)

  {

   //強制關(guān)機

   DWORD temp;

   ExitWindowsEx(EWX_FORCE,temp);

  }

    

    設(shè)置參數(shù)說明:

  設(shè)置值  簡要意義

  EWX_FORCE   強制終止程序運行而退出系統(tǒng)

  EWX_LOGOFF  退出而以其它身份登錄

  EWX_REBOOT  重新啟動

  EWX_SHUTDOWN  關(guān)機  

  5.運行程序后,分別單擊四個按鈕測試它們的功能。如果能完成各種設(shè)置的功能,說明你已成功了,那么就可以將本文介紹的方法運用到自己開發(fā)的C++ Builder應(yīng)用程序中去控制Windows的關(guān)閉了。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com