gpt4 book ai didi

c# - 如何在用户 session 被锁定时注销用户

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:00 25 4
gpt4 key购买 nike

我正在开发一个在后台运行的应用程序,用于捕获用户在其系统上的事件,例如注销/关机/空闲/切换用户/继续按下任何键/系统锁定等。

它工作正常,我能够跟踪所有事件,现在我需要在系统锁定 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;
}
}

任何人都可以帮助我如何在他/她处于锁定状态时注销用户。

最佳答案

终于找到了解决问题的办法,

代码

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");

关于c# - 如何在用户 session 被锁定时注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38259478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com