我有一个C#应用程序在后台运行。现在我想在系统锁定时停止此应用程序。我怎样才能做到这一点。对此有任何帮助非常感谢。
感谢Hougen的解决方案。你可以建议我,我们应该包括任何Dll来处理“Microsoft.Win32.SystemEvents.SessionSwitch”这个事件吗?以及此代码应驻留在哪一层。我猜它在商业层。有什么想法退守这个吗?
答案 0 :(得分:9)
易。为
创建一个事件处理程序Microsoft.Win32.SystemEvents.SessionSwitch
事件。在其中,检查SessionSwitchEventArgs.Reason
属性中的值SessionSwitchReason.SessionLock
。
Shyam :抱歉没有立刻回复你。您不必包含任何特殊的DLL。 SystemEvents
类位于系统程序集中。这个处理程序是否属于业务层 - 我想它属于包含服务类的任何项目 - 从WindowsService继承的那个。
public MyService()
{
InitializeComponent();
SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
}
void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
if (_isRunning)
{
// Pause
}
}