未登录的用户如果电源故障/拔下电脑插头,如何处理电源故障
本文关键字:故障 电源 何处理 处理 用户 登录 如果 电脑 | 更新日期: 2023-09-27 18:28:58
首先我有一个具有列登录状态的表UserAccounts如果用户登录到用户登录状态=1,否则如果他注销,则为=0
如果用户不小心拔掉电脑插头或发生电源故障,你认为该处理什么代码。我需要更改loginstatus=0,否则如果发生这些事件,它将自动注销。
顺便说一句,我使用sql server
我在表单关闭中使用了这段代码,但只有在应用程序运行时直接从"开始"菜单关闭计算机,它才会更改登录状态
private void MPTestTablesFormClosing(object sender, FormClosingEventArgs e)
{
if(e.CloseReason == CloseReason.WindowsShutDown)
{
var repo = new UserAccountsRepo();
var backRepo = new UserLogRepo();
var logs = new UserLogs
{
UserAccount = Globals.UserAccount,
LogOutTime = DateTime.Now
};
Globals.UserAccount.LogStatus = 0;
repo.Update(Globals.UserAccount);
backRepo.Update(logs);
Globals.UserAccount = null;
}
}
一个可能的解决方案是跟踪应用程序没有干净关闭的事实。I..我们在持久介质中的某个位置保存了一个标志,该标志在应用程序启动时设置,并在应用程序干净存在时重置。
然后在启动时检查此标志。如果它仍然被设置,那么您就知道您的应用程序没有干净地退出,并且您可以采取适当的(恢复)步骤来恢复到稳定的未损坏状态。
在出现电源故障的情况下,处理运行在计算机上的应用程序中的突然电源故障是不可能的。当电源出现故障时,计算机将停止运行,应用程序将不会收到任何警告。
对于电源模式发生变化的情况,如计算机被挂起或关闭,您可以在SystemEvents
上使用以下事件
SystemEvents.PowerModeChanged
SystemEvents.SessionEnding
这两个都可以响应计算机上的特定电源事件而引发。这可能就是您正在寻找的