当前位置:  开发笔记 > 编程语言 > 正文

从系统获取注销事件

如何解决《从系统获取注销事件》经验,为你挑选了2个好方法。

我正在做一个应用程序,用于在用户注销时清除Temp文件,历史记录等.那我怎么知道系统是否要注销(在C#中)?



1> TheVillageId..:

Environment类中有一个属性,它告诉关闭进程是否已经启动:

Environment.HasShutDownStarted

但经过一些谷歌搜索后,我发现这可能对你有所帮助:

 using Microsoft.Win32;

 //during init of your application bind to this event  
 SystemEvents.SessionEnding += 
            new SessionEndingEventHandler(SystemEvents_SessionEnding);

 void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
 {
     if (Environment.HasShutdownStarted)
     {
         //Tackle Shutdown
     }
     else
     {
         //Tackle log off
     }
  }

但是,如果您只想清除临时文件,那么我认为区分关闭或注销对您没有任何影响.



2> 小智..:

如果您特别需要注销事件,则可以修改TheVillageIdiot答案中提供的代码,如下所示:

using Microsoft.Win32;

//during init of your application bind to this event   
SystemEvents.SessionEnding += 
    new SessionEndingEventHandler(SystemEvents_SessionEnding);

void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) 
{     
    if (e.Reason == SessionEndReasons.Logoff) 
    {  
        // insert your code here
    }
}

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有