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

用Delphi控制Windows的關閉功能

編輯:Delphi
    對於以上功能,我們完全可以通過編程來實現,下面就以Delphi編程來完成。

  關閉(或重啟)Windows

  要關閉Windows,可利用API函數ExitWindowsEx(),它能夠實現“注銷當前用戶”、“關閉Windows”以及“關閉Windows並重啟”等功能,具體格式和用法如下:

  ExitWindowsEx(關閉類型參數,系統保留參數);

  其中,系統保留參數無特定意義,一般寫0即可;關閉類型可以是以下幾種:

  EWX_FORCE:強制關閉,Windows不會發送任何消息給正運行的程序,這可能導致數據丟失;

  EWX_LOGOFF:關閉所有正在運行的程序,注銷當前用戶並重新登錄;

  EWX_POWEROFF:關閉Windows並關機,當然,系統必須支持電源管理;

  EWX_REBOOT:關閉Windows並重新啟動;

  EWX_SHUTDOWN:關閉Windows,緩沖區內的數據將被寫入磁盤。

  我們來看一個實例,首先新建一窗體,在上面放置一組單選鈕,命名為rgExit,共三個選項:注銷當前用戶並重新登錄;關閉Windows並重新啟動;關閉Windows。再放置兩個按鈕,Botton1用於確認,Botton2用於取消。代碼如下:

  Implementation

  { *.dfm}

  Procedure tform1.button1click(sender: tobject);

  Begin

  case rgexit.itemindex of

  0: exitWindowsex(ewx_

  logoff,0); //注銷當前用戶並重新登錄

  1: exitwindowsex(ewx_reboot,0); //關閉Windows並重新啟動

  2: exitwindowsex(ewx_shutdown,0); //關閉Windows

  end;

  End;

  Procedure tform1.button2click(sender: tobject);

  Begin

  close;

  End;

  防止關閉Windows

  要實現“防止關閉Windows”這一功能其實很簡單,只要在程序主窗體的OnCloseQuery事件中加入以下代碼即可:

  Procedure tform1.formclosequery(Sender: tobject; var canclose: Boolean);

  Begin

  If messagedlg('是否允許關閉?', mtconfirmation, mbokcancel, 0) = mrok then

  Canclose := True

  Else

  Canclose := False;

  End;

  如果把CanClose設為False,表示不允許關閉Windows;如果CanClose設為True,則允許關閉。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved