Windows Client 客户端在关机,不外乎两种情况:

1. 没有处理 Windows 关机消息;

2.处理了关机消息,但是超时了;

上面这两种情况,都会让Windows 关不了机。在现实生活中,这个情况的出现,让用户很头疼!

一般出现上面这种情况,要对代码的分析,一定要对消息分发,消息处理的地方进行重点对待。对于Delphi 程序,很多事通过

Var

aHande:THandle;

begin

aHande:=AllocateHWnd(WndProc);

end;

传入 WndProc 过程,如WndProc的原型:  procedure WndProc(var Message: TMessage);  在 WndProc 中一定要注意了,对于

自定义的消息处理外,必须的处理Windows的其他消息。

一般的书写方式为:

procedure WndProc(var Message: TMessage);

begin

if Message.Msg=WM_Reply then //WM_Reply 为自定义消息
    begin
     { WMReply(Message);  这里是对自定义消息的处理}
    end
   else
    begin

   {注意 下面这句话,非常重要,直接调用Window单元 DefWindowProc 进行处理,并且还要指定  Message.Result

        很多代码 是调用   Dispatch(Message);   这样写没有错,在VCL里面,它最终调用 Window单元的                       DefWindowProc,  但是有可能超时,会导致Windows没有收到关机确认消息,而被阻止,不能正常退出。}

 Message.Result :=DefWindowProc(Fhandle,Message.Msg, Message.WParam,Message.LParam);

end;

end;

http://blog.csdn.net/tjb_1216/article/details/5664116

最新文章

  1. iOS多线程实现2-NSThread
  2. [转]SQL SERVER – Importance of Database Schemas in SQL Server
  3. c++ 模板元编程的一点体会
  4. C#开发COM组件
  5. 十种JAVA排序算法实例
  6. 关于 ProcessEngines.getDefaultProcessEngine();NullPointException问题
  7. 1156. Two Rounds(dfs+背包)
  8. PHP获取当前时间的毫秒数(yyyyMMddHHmmssSSS)
  9. Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值
  10. 求S=a+aa+aaa+aaaa+aa...a的值
  11. SQL Server IO系统问题解决
  12. Fedora24 升级到25
  13. mongodb分片
  14. hdu_1711: Number Sequence【KMP算法】
  15. HTTPS与MITM
  16. markdown实战问题备忘
  17. PHP 利用QQ邮箱发送邮件「PHPMailer」
  18. Prometheus Node_exporter 之 Network Traffic Detail
  19. 机器学习入门学习笔记:(一)BP神经网络原理推导及程序实现
  20. 两段 PHP 代码比较优劣

热门文章

  1. Cocos2d-x 脚本语言Lua基本语法
  2. spark rdd持久化的简单对比
  3. 征服OA 飞鱼工作流程的在线培训课程(两)HTML形成基于
  4. HDU 4313 Matrix 树形dp
  5. WPF 渲染原理
  6. 【Struts2学习笔记(4)】指定需要Struts 2请求后缀的常量定义复杂的过程
  7. C++调用IDL程序的做法(一)
  8. jQuery在线选座订座(高铁版)
  9. 读取数据变JSON传值!
  10. Android 混淆[学习笔记]