我想成为一名优秀的开发人员公民pay my taxes,并在我们通过远程桌面运行或依靠电池运行时禁用某些功能。

如果我们在远程桌面上运行(或等效地在终端服务器 session 中运行),则必须禁用动画和双缓冲。您可以使用以下方法进行检查:

/// <summary>
/// Indicates if we're running in a remote desktop session.
/// If we are, then you MUST disable animations and double buffering i.e. Pay your taxes!
///
/// </summary>
/// <returns></returns>
public static Boolean IsRemoteSession
{
    //This is just a friendly wrapper around the built-in way
    get
    {
        return System.Windows.Forms.SystemInformation.TerminalServerSession;
    }
}

现在,我需要确定用户是否使用电池供电。如果他们是,我不想炸毁他们的电池。我想做诸如
  • 禁用动画
  • 禁用后台拼写检查
  • 禁用后台打印
  • 关闭渐变
  • 使用graphics.SmoothingMode = SmoothingMode.HighSpeed;
  • 使用graphics.InterpolationMode = InterpolationMode.Low;
  • 使用graphics.CompositingQuality = CompositingQuality.HighSpeed;
  • 最小化硬盘驱动器访问-避免旋转
  • 最小化网络访问-以节省WiFi功率

  • 有没有一种托管的方式来查看机器当前是否在使用电池运行

    奖励阅读
  • How do you convince developers to pay their "taxes"?(archive.is)
  • Taxes: Remote Desktop Connection and painting(archive.is)
  • GetSystemMetrics(SM_REMOTESESSION)(archive.is)
  • 最佳答案

    我相信您可以检查SystemInformation.PowerStatus来查看它是否有电池。

    Boolean isRunningOnBattery =
          (System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus ==
           PowerLineStatus.Offline);
    

    编辑:除了上述以外,还有一个System.Windows.Forms。 PowerStatus类。它的方法之一是PowerLineStatus,如果使用交流电源,则等于PowerLineStatus.Online。

    关于c# - C#.NET : How to check if we're running on battery?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/241142/

    10-09 15:55