如何让我的显示器按需关闭?

int*_*ntA 8 screensaver sleep display windows-10

现在我的 win 10 PC 设置为在 30 分钟不活动后关闭显示器。我想知道我是否可以按需使用相同的功能。我经常在晚上睡觉前使用我的电脑,并希望能够通过无线键盘关闭显示。我知道这个键盘有一个睡眠按钮,但有时我不想让我的电脑因为下载或其他进程仍在运行而进入睡眠状态。所以我想知道是否有任何我可以拥有一些 .bat 文件,或其他无需起床按下显示器上的按钮即可关闭屏幕的方法。如果我也可以将它连接到键盘上的按钮,就像睡眠一样,那就太棒了。

谢谢!

Beo*_*e42 8

基于这个链接到这个脚本页面的Windows 7 答案,并检查这个 MSDN 库页面,使用的代码是正确的,你可以运行下面的 powershell 脚本来关闭屏幕。我在我的 Windows 10 笔记本电脑上运行它,它运行良好。运行脚本后移动鼠标会唤醒屏幕,就像您通常在屏幕从省电功能中关闭时所做的那样。

关闭屏幕前的 2 秒延迟是为了让您有时间在 Windows 开始检查重新打开屏幕的移动之前松开鼠标/键盘。

使用这个 powershell 脚本,您不需要任何第三方工具或需要弄乱您现有的设置。只需将其保存在文件扩展名为 .ps1 的文件中,然后使用 powershell 运行它。

# Turn display off by calling WindowsAPI.
 
# SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, SC_MONITORPOWER, POWER_OFF)
# HWND_BROADCAST  0xffff
# WM_SYSCOMMAND   0x0112
# SC_MONITORPOWER 0xf170
# POWER_OFF       0x0002
 
Add-Type -TypeDefinition '
using System;
using System.Runtime.InteropServices;
 
namespace Utilities {
   public static class Display
   {
      [DllImport("user32.dll", CharSet = CharSet.Auto)]
      private static extern IntPtr SendMessage(
         IntPtr hWnd,
         UInt32 Msg,
         IntPtr wParam,
         IntPtr lParam
      );
 
      public static void PowerOff ()
      {
         SendMessage(
            (IntPtr)0xffff, // HWND_BROADCAST
            0x0112,         // WM_SYSCOMMAND
            (IntPtr)0xf170, // SC_MONITORPOWER
            (IntPtr)0x0002  // POWER_OFF
         );
      }
   }
}
'
start-sleep 2
[Utilities.Display]::PowerOff()
Run Code Online (Sandbox Code Playgroud)


Dav*_*ill 3

我想知道是否可以按需提供相同的功能。

使用nirsoftnircmd(如果您的显示器支持):

nircmd monitor off
Run Code Online (Sandbox Code Playgroud)

monitor [action]

更改显示监视器的状态。该[action]参数可能包含以下值:

  • off:关闭显示器
  • on:打开显示器
  • low:将显示器设置为低功耗状态。

此命令仅适用于支持此功能的系统。如果您在使用此命令时遇到 NirCmd 保留在内存中的问题,您可以尝试使用async_off,async_onasync_lowactions 来代替on/off/lowactions。

NirCmd 命令参考 - 监视器


免责声明

我与nirsoft没有任何关系,我只是他们软件的最终用户。