Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.net中控制Windows的状态?_C#_.net_Windows - Fatal编程技术网

C# 如何在.net中控制Windows的状态?

C# 如何在.net中控制Windows的状态?,c#,.net,windows,C#,.net,Windows,如何控制Windows的状态。在网上?特别感兴趣的是如何不让系统进入睡眠状态(如果用户长时间不使用输入设备)。当系统因用户不活动而进入待机、休眠或休眠状态时,如何跟踪事件,并在运行时取消事件(在某些情况下)?任何适用于.Net的信息都是有用的 提前感谢。在WinForms中,您可以检测到关机。在FormClosing事件中,您将获得FormClosingEventArgs e。然后您只需检查e.CloseReason==CloseReason.WindowsShutDown-这意味着关闭表单的原

如何控制Windows的状态。在网上?特别感兴趣的是如何不让系统进入睡眠状态(如果用户长时间不使用输入设备)。当系统因用户不活动而进入待机、休眠或休眠状态时,如何跟踪事件,并在运行时取消事件(在某些情况下)?任何适用于.Net的信息都是有用的


提前感谢。

在WinForms中,您可以检测到关机。在FormClosing事件中,您将获得
FormClosingEventArgs e
。然后您只需检查
e.CloseReason==CloseReason.WindowsShutDown
-这意味着关闭表单的原因是关闭操作系统。

在WMI、Windows Management Instrumentation上进行调查

WMI很适合这个问题,因为它提供了对Windows操作系统的深度控制,它有一个事件系统,并且它提供了一个.NET接口

事实上,WMI允许.NET应用程序(通过使用its)通过以下方式获得有关系统电源事件的通知


当然,要允许(或不允许)系统待机,必须考虑Adam的评论。

看这里:@Adam,哦,谢谢。我更感兴趣的是如何应对系统进入待机、睡眠或休眠状态的尝试,并在某些情况下取消它(可能模拟用户输入)。您知道如何追踪系统试图关闭的情况吗?补充回答。希望能有所帮助……我的第一个答案只由第一行组成(在我看来,答案的努力弥补了问题的努力),但落选者并没有这么做。