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