C# 服务未捕获SessionChange事件
我正在写一个小服务,用来记录一些事件。然而,他们中只有两个人在工作,甚至在搜索之后,我也不知道为什么 以下是我要记录的事件:C# 服务未捕获SessionChange事件,c#,events,service,C#,Events,Service,我正在写一个小服务,用来记录一些事件。然而,他们中只有两个人在工作,甚至在搜索之后,我也不知道为什么 以下是我要记录的事件: 启动计算机工作 会话锁定 会话解锁 关闭计算机工作 我三次检查我的服务是否可以捕获这些事件(我甚至将所有CanHandle..设置为true private void InitializeComponent() { // // Service1 // this.CanHandlePowerEvent = true; thi
- 启动计算机工作
- 会话锁定
- 会话解锁
- 关闭计算机工作
我三次检查我的服务是否可以捕获这些事件(我甚至将所有CanHandle..设置为true
private void InitializeComponent()
{
//
// Service1
//
this.CanHandlePowerEvent = true;
this.CanHandleSessionChangeEvent = true;
this.CanPauseAndContinue = true;
this.CanShutdown = true;
this.ServiceName = "TimeToGoService";
}
这是我覆盖的OnSessionChange()
startBreak()和endBreak()仅使用StreamWriter将日志写入文件
通过在网上搜索,我看到一些人使用隐藏表单来触发这些事件。这是问题所在吗?不知道为什么,但上面的代码现在100%正常工作。可能遗漏了一些内容 编辑:无法准确识别错误。我可以给我的下一个用户提供代码旁边的服务配置
- 服务用户是本地系统
- CanHandleSessionChangingEvents设置为true
祝你好运,但是如果你使用上面的代码和配置,你应该能够让它工作;)你的代码没有问题。。。有很多帖子都是关于会话变更的,但不可靠。
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
if (changeDescription.Reason == SessionChangeReason.SessionLock)
{
startBreak();
}
else if (changeDescription.Reason == SessionChangeReason.SessionUnlock)
{
endBreak();
}
base.OnSessionChange(changeDescription);
}