我正在开发一个应用程序,以便在后台运行以捕获用户在其系统上的活动,例如注销/关闭/空闲/切换用户/继续按任何键/系统锁等。< / p>
它工作正常,我能够跟踪所有活动,现在我需要在系统锁定15分钟后自动注销用户。
我已经尝试过以下代码。用户登录后ExitWindowsEx()
功能正常工作,但在用户锁定系统后无法正常工作。
[DllImport("user32")]
public static extern bool ExitWindowsEx(uint uFlags, uint dwReason);
private SessionSwitchEventHandler sseh;
void SysEventsCheck(object sender, SessionSwitchEventArgs e)
{
switch (e.Reason)
{
case SessionSwitchReason.SessionLock:
if(condition)
{
ExitWindowsEx(0, 0);
}
break;
}
}
任何人都可以帮助我在用户处于锁定状态时如何注销用户。
答案 0 :(得分:0)
最后得到了问题的替代方案,
public static bool _IsLocked;
private SessionSwitchEventHandler sseh;
void SysEventsCheck(object sender, SessionSwitchEventArgs e)
{
switch (e.Reason)
{
case SessionSwitchReason.SessionLock:
if (!_IsLocked)
{
Process.Start("shutdown", "/r /f /t 900");
}
_IsLocked = true;
break;
case SessionSwitchReason.SessionUnlock:
if (_IsLocked)
{
Process.Start("shutdown", "-a");
}
_IsLocked = false;
break;
}
}
以上代码将在系统锁定时安排系统重启(15分钟),如果用户在15分钟之前解锁系统代码将取消该计划,否则这将在15分钟后重新启动系统。
Process.Start("shutdown", "/r /f /t 900");
Process.Start("shutdown", "-a");