在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,允许计算机关闭。