我正在用 C# 编写一个播放电影的应用程序。我需要弄清楚如何使用 C# 禁用屏幕保护程序和电源选项。
我知道 Windows SDK API 有一个名为 SetThreadExecutionState() 的函数,可以用来执行此操作,但是,我不知道是否有更好的方法来执行此操作。如果没有,如何将此函数合并到 C# 中?
不确定是否有更好的 .NET 解决方案,但以下是使用该 API 的方法:
所需用途:
using System.Runtime.InteropServices;
P/调用:
public const uint ES_CONTINUOUS = 0x80000000;
public const uint ES_SYSTEM_REQUIRED = 0x00000001;
public const uint ES_DISPLAY_REQUIRED = 0x00000002;
[DllImport("kernel32.dll", SetLastError = true)]
public static extern uint SetThreadExecutionState([In] uint esFlags);
然后通过以下方式禁用屏幕保护程序:
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
最后通过将执行状态重置回原始值来启用屏幕保护程序:
SetThreadExecutionState(ES_CONTINUOUS);
请注意,在我的示例中,我只是随机选择了其中一个标志。您需要组合正确的标志才能获得您想要的特定行为。你会发现MSDN 上标志的描述 https://msdn.microsoft.com/en-us/library/windows/desktop/aa373208(v=vs.85).aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)