请教一个问题:systray中的程序,在windows正常关机时,如何写日志??

chenxiaocang 2003-01-14 01:38:55
我有一个程序,在systray中运行,要求是:程序退出时,需要写日志文件。
现在的问题是:当用户主动退出程序,那当然能写;
但是,当用户忘记了主动退出程序,而直接关闭windows时候,由于当时,systray中的应用程序还未退出,所以,进程直接被删除了,无法写日志,怎么办??
...全文
50 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingkee 2003-01-14
  • 打赏
  • 举报
回复
要拦截Windows关闭消息:

.h 文件中:
BEGIN_MESSAGE_MAP
   MESSAGE_HANDLER(WM_QUERYENDSESSION,TMessage,ApplicationClose)
END_MESSAGE_MAP(TForm)

.cpp 文件中:

void __fastcall TfrmMain::ApplicationClose(TMessage& Msg)
{

//在此赶快进行写日志

Application->Terminate();

TForm::Dispatch(&Msg); //注意消息再分发
}

照这样处理就可以了。

netsys2 2003-01-14
  • 打赏
  • 举报
回复
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
// 写日志
}
warton 2003-01-14
  • 打赏
  • 举报
回复
关闭窗口时就写日志不行吗
jspring 2003-01-14
  • 打赏
  • 举报
回复
处理WM_QUERYENDSESSION消息。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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