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

问题描述

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

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

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

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

解决方法

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

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

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

这可能吗?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”