本實例介紹在程序運行的過程中禁止用戶關閉操作系統。
用戶是否可以關閉操作系統是通過對WM_QueryEndSession的處理來實現的,為此首先需要在程序中添加WM_QueryEndSession消息處理的聲明:
procedure QueryEndSession(var Msg:TMessage);Message WM_QueryEndSession;
它的響應代碼如下:
procedure TForm1.QueryEndSession(var Msg:TMessage);
begin
Msg.Result:=0;
end;
當用戶關閉操作系統時,操作系統會發布一個WM_QueryEndSession消息,這時就會激活本實例程序中的QueryEndSession過程,程序通過設置消息的返回值為0,就會禁止用戶關閉操作系統,反之如果設置消息的返回值為1,就會允許用戶關閉操作系統。
程序代碼如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure QueryEndSession(var Msg:TMessage);Message WM_QueryEndSession;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.QueryEndSession(var Msg:TMessage);
begin
Msg.Result:=0;
end;
end.
保存文件,然後按F9鍵運行程序。只要本程序在正常運行,用戶就無法關閉操作系統。
在工程實際中,經常需要使應用程序不間斷地運行,為了防止意外因素關閉操作系統,可以使用本實例介紹的方法。