3

Прямо сейчас мой компьютер win 10 настроен на отключение дисплея после 30 минут бездействия. Мне интересно, могу ли я иметь ту же функцию по требованию. Я часто использую свой компьютер ночью перед сном и хочу иметь возможность отключить дисплей с помощью беспроводной клавиатуры. Я знаю, что на этой клавиатуре есть кнопка спящего режима, но иногда я не хочу переводить компьютер в спящий режим из-за загрузок или других процессов, которые все еще работают. Поэтому мне интересно, есть ли у меня какой-нибудь файл .bat или другой способ просто выключить экран, не вставая с экрана и не нажимая кнопку на моем мониторе. Было бы замечательно, если бы я мог подключить его к кнопке на клавиатуре, как сон.

Спасибо!

3 ответа3

2

Вот этот скрипт autohoykey, который вы можете попробовать

2

На основании этого ответа Windows 7, который ссылается на эту страницу скрипта, и проверки этой страницы библиотеки MSDN, что используемые коды верны, вы можете запустить приведенный ниже скрипт powershell, чтобы выключить экран. Я запустил его на своем ноутбуке с Windows 10, и он работал нормально. Перемещение мыши после запуска сценария пробуждает экран, как обычно, когда экран отключен от функции энергосбережения.

Задержка в 2 секунды перед тем, как он выключит экран, позволит вам успеть отпустить мышь / клавиатуру, прежде чем Windows начнет проверять движение для включения экрана.

С помощью этого скрипта вам не понадобится какой-либо инструмент стороннего производителя или вам нужно возиться с существующими настройками.

# 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()
1

Мне интересно, могу ли я иметь ту же функцию по требованию.

Используйте nircmd от nirsoft (если он поддерживается вашим монитором):

nircmd monitor off

monitor [action]

Изменяет состояние дисплея монитора. Параметр [action] может содержать следующие значения:

  • off: выключить монитор
  • on: включить монитор
  • low: установите монитор в режим низкого энергопотребления.

Эта команда работает только в системах, которые поддерживают эту функцию. Если у вас есть проблема с тем, что NirCmd остается в памяти при использовании этой команды, вы можете попробовать использовать действия async_off , async_on и async_low вместо действий on/off/low .

Исходный справочник команд NirCmd - монитор


отказ

Я никоим образом не связан с nirsoft , я просто конечный пользователь их программного обеспечения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .