• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请教一下怎样在关机之前做一些事情

请教一下怎样在关机之前做一些事情

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了请教做踏笼机关,想做大米生意请教,请教如何做油条,请教炖羊脸怎么做,请教做包子怎样发面等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请教一下怎样在关机之前做一些事情
描述:

不是很清楚是否应该用COM来做
是这样:
比如我有一些应用程序,它们打开了一些数据库的连接。
在关机的时候,windows似乎只是简单的kill这些进程,而一些资源(比如数据库连接)就没有被释放掉。
我想知道有没有这样负责清理工作的例子?谢谢!


解决方案1:

试试这个 WM_QUERYENDSESSION 消息~~~

解决方案2:

系统关闭时,会发送WM_QUERYENDSESSION消息给每个进程
只要拦下WM_QUERYENDSESSION消息.然后进行处理.之后在发送WM_QUERYENDSESSION就可以了

解决方案3:

不需要这么复杂的,只要在PreTranslateMessage截获WM_QUERYENDSESSION
然后做响应就行了
其实windows都要关闭了,资源释放不释放的还有什么意义呢?^_^

解决方案4:

系统关闭时,会发送WM_QUERYENDSESSION消息给每个进程
//响应WM_QUERYENDSESSION消息
PreTranslateMessage里截获消息,然后处理
case WM_QUERYENDSESSION: 
{ 
      int ret; 
      ret = MessageBox(NULL, "是否关闭?","WM_QUERYENDSESSION", MB_YESNO); 
      return ret == IDYES; 
      break; 
}

解决方案5:

重启时,系统会向Top Level的窗口发送WM_QUERYENDSESSION消息。
发送消息时,系统是有一个优先级的,先向哪些程序发送,后向哪些程序发送。
几乎没有哪个应用程序关心这个优先级,所以你只需要将你的这个优先级设置高一些,以便于系统先向你的窗口哪送消息。就可以达到你的要求了,也不用去截获发给其他程序的消息了。
这个优先级可以由SetProcessShutdownParameters来设置。
BOOL SetProcessShutdownParameters(
  DWORD dwLevel,  // shutdown priority
  DWORD dwFlags   // shutdown options
);
dwLevel可以取的值为 0x100 ~ 0x3ff,值越大,优先级越高。
dwFlags设置成0或SHUTDOWN_NORETRY
这个API 9x/me不支持.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请教高手,我做了一个ATL组件,在多个ASP页面中需要调用其接口函数。
  • 请教做IE插件要学什么?
  • 请教如何做线程,最好有例子。
  • 做个dll给vb用,请教
  • 请教一下怎样在关机之前做一些事情

相关文章

  • 2017-06-05 刚学调用COM组件,不知道IXXXPtr申明的智能指针使用''和'->'有什么区别?
  • 2017-06-04 400分求教ACTIVEX中多视图的问题!另开贴加另外300。请高手赐教
  • 2017-06-04 求教大侠们关于ATLCOM工程编译错误
  • 2017-06-04 如何给activex控件加上边框
  • 2017-06-04 上次发帖没有解决好的问题,有点难度,请高手请来指点一下,和我一样不明白的,大家一起来学习一下哈!
  • 2017-06-05 为什么??:在一个类函数里启动一个线程,并用另一个成员函数作为线程函数,出错了
  • 2017-06-04 我在asp中调用了我写的com组件(dll),运行正常,可是当我从新编译时(运行一次后),老是说无法打开dll
  • 2017-06-04 请问如何将一个com对象做为参数传递给另一个com对象?
  • 2017-06-04 哪位大虾简单介绍一下MTS的概念。。。
  • 2017-06-04 谁有vc做的mp3的源码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • windows核心编程中一疑惑,有关共享变量的问题;小弟第一次提问,还请多多帮助
    • 各位大虾请问这几句话是什么意思呀(线程与事件的问题)
    • 如何让CEDIT支持拖放?
    • 在WIN2000中,我开了一个线程,发现CPU占用率是99%-100%,能不能让它不占用这么多?
    • DeadWolf,进来领分!!!谢谢你了!
    • sendmessage
    • 如何限制一个自动化对象只在特定网页才能创建使用?
    • 不用mfc在vc++中方便调用word进行数据写入的操作吗
    • 为什么我的ocx控件不能响应WM_MOUSEWHEEL???
    • ATL开发ActiveX控件,使用定时器

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有