以编程方式阻止Windows关闭

时间:2009-07-26 16:14:46

标签: delphi windows-xp

只要我的 Delphi 应用程序正在运行,我想阻止 Windows XP 关机,我尝试了以下操作:

procedure TForm1.FormCreate(Sender: TObject);
begin
  SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, nil, 0);
  SystemParametersInfo(SPI_SETPOWEROFFACTIVE, 0, nil, 0);
  SystemParametersInfo(SPI_SETLOWPOWERACTIVE, 0, nil, 0);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, nil, 0);
  SystemParametersInfo(SPI_SETPOWEROFFACTIVE, 1, nil, 0);
  SystemParametersInfo(SPI_SETLOWPOWERACTIVE, 1, nil, 0);
end;

但这似乎不起作用。还有其他建议吗?
TIA
史蒂芬

2 个答案:

答案 0 :(得分:13)

以下是您的问题的答案:

检测并阻止Windows关闭 http://delphi.about.com/cs/adptips2000/a/bltip0500_4.htm

答案 1 :(得分:1)

我根本没有Delphi knwoledge,只是从用户的角度来看:我不希望程序能够做到这一点,如果他们允许,我会对microsoft感到非常生气。

只要想一想,只要它正在运行,任何恶意软件都会禁止你关闭它,并且它不会关闭 - 哎哟。从现在开始,我们永远不会再关闭窗户,我们总是要关闭电脑,这对硬件或软件都不利。

我并不是说这是不可能的,但如果我正在制作操作系统,我会积极地让你很难甚至不可能这样做,因为它有太大的滥用可能性。因此,您可能会发现即使是微软也有这种观点,并且确实无法实现。