暂停一台电脑

时间:2015-11-24 14:27:48

标签: c# uwp suspend

我是C#的新手,我正在尝试编写自己的UWP应用程序,以便在用户输入间隔后暂停PC。

我设法让我的计时器工作,但我很难理解如何调用该方法来暂停计算机。我尝试使用建议的代码here

Application.SetSuspendState(PowerState.Suspend, true, true);

但是当我尝试构建项目时出现以下错误:

  

CS0117 'Application' does not contain a definition for 'SetSuspendState' SystemTimer C:\Users\xxxxx\Source\Workspaces\Workspace\SystemTimer\SystemTimer\MainPage.xaml.cs 52

我在PowerState上找到了MSDN条目,建议我使用System.Windows.Form库。我尝试将其添加到命名空间,但收到错误消息,指出Form不是System.Windows中的可用命名空间。

我觉得我可能遗漏了一些基本的东西,但我并不完全确定它是什么。

2 个答案:

答案 0 :(得分:2)

  

我觉得我可能缺少一些基本的东西,但我并不完全是这样。

(UWP)应用程序的世界是一个不同的世界。应用程序不应该与其底层系统干扰(即乱七八糟)。您基本上在沙盒环境中运行,而您只能获得API提供的内容。关闭或暂停系统不是此API的一部分。

你有什么选择?如果您创建桌面应用程序,可能会更好。然后,您将能够使用所有可用的桌面API,包括System.Windows.Form

答案 1 :(得分:-1)

您是否尝试过使用Interop服务实现此目的?

[DllImport("Powrprof.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern bool SetSuspendState(bool hiberate, bool forceCritical, bool disableWakeEvent);

// Hibernate
SetSuspendState(true, true, true);
// Standby
SetSuspendState(false, true, true);