如何保证在关机的时候,程序将数据写入硬盘?

66766 2010-05-20 06:22:39
我有一个驻留程序,希望在系统关机的时候,将数据写入硬盘
可是使用WM_DESTROY发现,只在人工关闭程序的时候起作用,当系统关机时不起作用。

请问怎样在系统关机的时候,我的这个正在运行中的程序执行一些操作。
...全文
147 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwfgdlc 2010-05-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 66766 的回复:]
谢谢楼上,问题解决
顺便问个小问题
我在
WM_QUERYENDSESSION
写了个死循环
发现系统要求我强制终止这个进程

请问系统给每个程序发送WM_QUERYENDSESSION
等待的时间是多长
也就是说我有多长时间完成数据的写入工作
而不至于出现这种关机时,系统要求我终止程序的情况
[/Quote]
这个值保存在注册表的.

1.找到HKEY-CURRENT-USER\Control Panel\Desktop键
2.将HungAppTimeout 值改为:1000,表示程序出错时等待1秒(1000ms)。
3.将AutoEndTasks 值设为:1,让系统自动关闭停止响应的程序。
AlanBruce 2010-05-20
  • 打赏
  • 举报
回复
==! 。。。。
66766 2010-05-20
  • 打赏
  • 举报
回复
谢谢楼上,问题解决
顺便问个小问题
我在
WM_QUERYENDSESSION
写了个死循环
发现系统要求我强制终止这个进程

请问系统给每个程序发送WM_QUERYENDSESSION
等待的时间是多长
也就是说我有多长时间完成数据的写入工作
而不至于出现这种关机时,系统要求我终止程序的情况
zwfgdlc 2010-05-20
  • 打赏
  • 举报
回复
系统关闭时会向所有窗口发送WM_QUERYENDSESSION消息,你可以在这时保存数据。
不过只能正常关机才会有这个消息。

case WM_QUERYENDSESSION:
{
//保存数据到硬盘
return TRUE;
}
cattycat 2010-05-20
  • 打赏
  • 举报
回复
这个没人能保证吧,当电脑突然关闭时,很多程序都不能保证将数据保存到硬盘。除非你的程序在运行的时候自己缓冲部分数据到硬盘,有个临时文件之类的。
十八道胡同 2010-05-20
  • 打赏
  • 举报
回复
关机之前清楚缓存

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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