在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,允許計算機關閉。