【发布时间】:2011-03-05 06:22:29
【问题描述】:
我有一个 Windows 服务,它可以获取用户详细信息并将结果保存到日志文本文件中。而且,我的问题是当我关闭或注销系统时,我还想将关闭系统的时间保存到该日志文件中。但是,我不知道该怎么做。
我检查了 winproc 方法来检测关机操作,但我无法在窗口服务上使用它,谷歌搜索发现它只能与表单一起使用。我们如何检测用户已单击关机或注销并执行某些操作。 所以,请给我一些想法或建议。
我已经用它来注销,但是当我注销系统时会进行日志条目
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
this.RequestAdditionalTime(250000); //gives a 25 second delay on Logoff
if (changeDescription.Reason == SessionChangeReason.SessionLogoff)
{
// Add your save code here
StreamWriter str = new StreamWriter("D:\\Log.txt", true);
str.WriteLine("Service stoped due to " + changeDescription.Reason.ToString() + "on" + DateTime.Now.ToString());
str.Close();
}
base.OnSessionChange(changeDescription);
}
【问题讨论】:
标签: c# .net windows-services