GetLogoutEventsfromtheSystem我正在制作一个应用程序,在用户注销时清除临时文件、历史记录等。那么我怎么知道系统是否要注销(在C#中)?Environment类中有一个属性可以告诉关闭过程是否已经开始:Environment.HasShutDownStarted但经过一些谷歌搜索后我发现这可能对你有帮助:usingMicrosoft.Win32;//在您的应用程序初始化期间绑定到此事件SystemEvents.SessionEnding+=newSessionEndingEventHandler(SystemEvents_SessionEnding);voidSystemEvents_SessionEnding(objectsender,SessionEndingEventArgse){if(Environment.HasShutdownStarted){//TackleShutdown}else{//Tacklelogoff}}但是如果你只是想清除临时文件,那么我认为它不会您区分关闭或注销的任何区别。如果你特别需要注销事件,你可以修改TheVillageIdiot的答案中提供的代码如下:usingMicrosoft.Win32;//在您的应用程序初始化期间绑定到此事件SystemEvents.SessionEnding+=newSessionEndingEventHandler(SystemEvents_SessionEnding);voidSystemEvents_SessionEnding(objectsender,SessionEndingEventArgse){if(e.Reason==SessionEndReasons.Logoff){//在此处插入您的代码}}您可以使用WMI并观察Win32_ComputerShutdownEvent,其中Type等于0。您可以在此处找到有关此事件的信息有关更多信息,以及有关在.NET中使用WMI的更多信息。以上就是C#学习教程:从系统获取登出事件分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
