当前位置: 首页 > 面试题库 >

C#-如何检测Windows关闭/注销并取消该操作(询问用户之后)

司徒斌
2023-03-14
问题内容

一些解释:对于我正在处理的项目,我必须编写一个在后台运行的程序,检测文件的更改,并将修改后的文件上传到Web服务,以供其他人使用。如果不是在用户修改大文件并在编辑后立即决定关闭其计算机的情况下,则非常简单的同步。

我可以取消上载,然后等待下一次重新启动来执行上载,但是我可以想象用户第二天早晨将文件从Web下载到另一台计算机,并且不理解为什么他昨晚的更改不存在。

因此,我的想法是检测用户何时注销或重新启动Windows,并且如果我正在上传过程中,只需询问用户“我们仍在同步Foo.txt刚更改的文件。确定要重新启动吗? ?您所做的更改只有在重新启动计算机后才会对其他人可用!”。如果用户拒绝,我需要取消重新启动/注销

这可能吗?


问题答案:

有一个称为的静态类SystemEvents,它公开了这种行为:

http://msdn.microsoft.com/zh-CN/library/microsoft.win32.systemevents.aspx

但是,它无法区分某些操作,也不会暂停OS进程超时防护。我使用了一次,但是注册表中配置的默认超时时间有点短,因此可能需要增加。

简而言之,这一切都让人觉得有些骇人听闻。



 类似资料:
  • 问题内容: 是否可以检测PC何时注销。我需要开发一个应用程序,在PC注销之前,该应用程序将有关注销时间的文本文档写入文本。 问题答案: 对于.NET,请参见以下问题:[c#中是否有方法可以检测Windows关闭/注销并取消该操作(询问用户之后)http://codingdict.com/questions/159553)

  • 问题内容: 我要销毁logout.php中的所有会话变量,并在用户单击注销时调用它,这是用户不单击logout.php而是直接关闭浏览器。我该如何删除会话呢??? 问题答案: 您可以为会话数据设置过期时间,在每次调用时对其进行测试,并在会话过期时销毁会话:

  • 本文向大家介绍C#如何检测操作系统版本,包括了C#如何检测操作系统版本的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#检测操作系统版本的方法,供大家参考,具体内容如下 我们通过System.Environment.OSVersion.Version获得操作系统的版本号,然后再根据版本号进行判断操作系统是什么版本。 Version 类的属性 参考于:https://msdn.mic

  • 问题内容: 除了使用JNI,Java GUI应用程序还可以响应系统关闭或注销事件吗?(在Windows上,JNI将在Linux上使用WM_QUERYENDSESSION吗?) 该方法应允许程序提示用户进行保存等,然后继续注销过程。 问题答案: 据我所知,Java中没有办法捕获系统关闭或注销事件。 但是,您可以通过添加shutdown hook来 捕获JVM何时终止。 AWT的WindowAdapt

  • 问题内容: 有没有可用于Java的库来侦听用户注销和其他Windows事件?(如果它支持多个平台,那就更好了!) 我记得几年前曾读过有关此类图书馆的文章,但现在似乎找不到。我已经看到其他线程使用带有win32ts的Python来做基本上相同的事情。 如果它是免费的和/或开源的,那就更好了。 谢谢。 注意 :使用的候选解决方案无法与一起正常使用。我仍在寻找适用于javaw的解决方案。请参阅Java错

  • 我有一个按钮,可以设置一个动作,比如 如何从该按钮中删除此EventFilter?我尝试了方法,但应该是什么参数?