在應用程式中開關WINDOWS系統

來源:互聯網
上載者:User

在實際應用時,修改了系統的某些設定,必須重新啟動WINDOWS;而有些時候示範完

一個軟體後,必須關閉WINDOWS;同時在示範期間,又禁止使用者強行關閉WINDOWS.如何

解決上述問題,筆者編製了一個程式全面地解決了上述問題.

  1. 實現原理:

    1.重新啟動WINDOWS,關閉WINDOWS,結束當前的使用者進程都是通過調用

    EXITWINDOWSEX函數實現的.該函數有兩個參數,前一個參數使用EWX_FORCE表示

    強行關閉WINDOWS而不提醒儲存其他應用程式的運行結果,後一個參數EWX_LOGOFF

    表示登出當前的使用者進程; EWX_SHUTDOWN表示關閉WINDOWS; EWX_REBOOT表示

    重新啟動WINDOWS.

    2.禁止關閉WINDOWS是通過關閉WINDOWS98時,系統向各應用程式發送的一個

    訊息wm_queryendsession,通知各應用程式要關機了,如反饋回來的訊息值為0,那麼就不能

    關閉WINDOWS98.

    圖1

  2. 應用執行個體:

  1. 建立含有如下控制項的表單:

控制項 控制項名 CAPTION

表單 FORM1 重新啟動WINDOWS系統

複選框 CHECKBOX1 強行結束當前的使用者進程

複選框 CHECKBOX2 強行關機

複選框 CHECKBOX3 強行重新啟動機器

複選框 CHECKBOX4 禁止關機

複選框 CHECKBOX5 退出

2.程式清單:

unit CLSW;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

procedure CheckBox1Click(Sender: TObject);

procedure CheckBox2Click(Sender: TObject);

procedure CheckBox3Click(Sender: TObject);

procedure CheckBox5Click(Sender: TObject);

private

procedure wmqueryendsession(var msg:TMessage);

message wm_queryendsession;

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.CheckBox1Click(Sender: TObject);

var EWX_LOGOFF,EWX_FORCE:integer;

begin

EWX_LOGOFF:=0;

EWX_FORCE:=4;

EXITWINDOWSEX(EWX_FORCE OR EWX_LOGOFF,0);

end;

procedure TForm1.CheckBox2Click(Sender: TObject);

var EWX_SHUTDOWN,EWX_FORCE:integer;

begin

EWX_SHUTDOWN:=1;

EWX_FORCE:=4;

EXITWINDOWSEX(EWX_FORCE OR EWX_SHUTDOWN,0);

end;

procedure TForm1.CheckBox3Click(Sender: TObject);

var EWX_REBOOT,EWX_FORCE:integer;

begin

EWX_REBOOT:=2;

EWX_FORCE:=4;

EXITWINDOWSEX(EWX_FORCE OR EWX_REBOOT,0);

end;

procedure TForm1.wmqueryendsession(var msg: TMessage);

begin

if checkbox4.checked then

msg.result:=1

else

msg.result:=0;

end;

procedure TForm1.CheckBox5Click(Sender: TObject);

begin

close;

end;

end.

以上程式在WINDOWS 98、DEPHI 4.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.