windows 关机?

coollee 2003-03-05 10:24:45
我想在机器关闭、重起、注销时,先运行自己的程序,然后根据原来具体的要求,来响应关闭、重起或注销。那位大侠可给我个答案。
...全文
29 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghbh 2003-03-05
  • 打赏
  • 举报
回复
mark
myling 2003-03-05
  • 打赏
  • 举报
回复
up
Drate 2003-03-05
  • 打赏
  • 举报
回复
用Delphi实现禁止用户关闭Window9X。

在软件的安装或演示操作等过程中,如果关闭WIN9X会产生严重的后果,
就必须禁止用户关闭WIN9X,直到完成相应的操作,那么如何才能禁止用户
关闭WIN9X呢?其实很简单,当用户关闭WIN9X时, 系统会发送给各应用程序
一个消息wm_queryendsession, 告诉各应用程序要关机了,如果反馈回来的
消息值为0,那么WIN9X就不能关机。因此,截获wm_queryendsession,并反馈
回0,大功就告成了,下面是一个例子。

//声明拦截WM_QueryEndSession消息的过程
procedure WMQueryEndSession(var Msg: TMessage);message WM_QueryEndSession;

procedure TForm1.WMQueryEndSession(var Msg: TMessage);
begin
if CheckBox1.Checked then Msg.Result :=1
else Msg.Result :=0;
end;
888888888888 2003-03-05
  • 打赏
  • 举报
回复
关注
naughtyboy 2003-03-05
  • 打赏
  • 举报
回复
Form OnCloseQuery里面写你的代码
begin
//add your code here
CanClose := False;
end
yang946 2003-03-05
  • 打赏
  • 举报
回复
//声明拦截WM_QueryEndSession消息的过程
procedure WMQueryEndSession(var Msg: TMessage);message WM_QueryEndSession;

procedure TForm1.WMQueryEndSession(var Msg: TMessage);
begin
if CheckBox1.Checked then Msg.Result :=1
else Msg.Result :=0;
end;
yang946 2003-03-05
  • 打赏
  • 举报
回复
此类问题要用windows消息拦截方法可以解决,当发生关闭,重起,注销的消息时,拦截并加入自己的处理方法。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧