温馨提示×

Delphi怎么阻止计算机关闭

小亿
116
2023-10-24 22:05:01
栏目: 编程语言

在Delphi中,可以使用Windows API函数来阻止计算机关闭。下面是一个示例代码:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  // 阻止计算机关闭
  CanClose := False;

  // 显示一个提示对话框,询问用户是否关闭程序
  if MessageDlg('确认关闭程序?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    CanClose := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // 注册一个关闭事件
  Application.OnQueryEndSession := FormCloseQuery;
end;

end.

在上面的示例中,使用了Application.OnQueryEndSession事件来注册关闭事件。在关闭事件的处理程序中,将CanClose参数设置为False,以阻止计算机关闭。然后,使用MessageDlg函数显示一个提示对话框,询问用户是否关闭程序。如果用户选择关闭程序,则将CanClose参数设置为True,允许计算机关闭。

0