阅读量:5
在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,允许计算机关闭。