Как вручную вызвать «выключить дисплей»? [Дубликат]


13

Как вручную запустить функцию «выключить дисплей» в Windows 7? Обычно это происходит автоматически, когда пользователь не перемещает мышь или нажимает какие-либо клавиши в течение определенного времени (раздел управления питанием панели управления).

Стороннее программное обеспечение или полноценное приложение - это хорошо, но я бы предпочел подход, родной для Windows 7. Как командная строка или что-то в этом роде.


Времена ниже минуты для режима сна монитора? Это помогло бы при применении этого метода: answers.microsoft.com/en-us/windows/forum/windows_7-desktop/...
— Andrestand

Ответы:


8

Этот скрипт, написанный на 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
         );
      }
   }
}
'

[Utilities.Display]::PowerOff()

Примечание . Для этого совета требуется PowerShell 2.0 или выше.


@ user1306322 Правильно. Заставка не выключает дисплей.
— Ланс

@ user1306322 Ответ обновлен.
— stderr

Из-за отсутствия лучшего ответа я принимаю этот. Следует отметить, что это полезно только тогда, когда вы не взаимодействуете с компьютером. То есть, чтобы экран оставался выключенным, вам нужно перестать касаться каких-либо кнопок или мыши. Установка таймера на секунду или две перед выполнением этой команды может быть очень полезна.
— user1306322

6

Не нативное решение - требуется бесплатная внешняя программа Nircmd . Но это довольно полезно и не требует ничего, чтобы его использовать.

Чтобы выключить монитор:

nircmd.exe monitor off

Чтобы включить монитор:

nircmd.exe monitor on

4

Я пользуюсь Monitor Off Utility уже несколько лет. Я назначил комбинацию клавиш и нажимаю ее, если хочу отключить отображение.

введите описание изображения здесь

введите описание изображения здесь


Не уверен, почему ответ был отклонен. Нейтрализация эффекта, так как утилита делает то, что хочет OP
— Ejaz

Разве на самом деле такое программное обеспечение не выполняет то, что может делать какая-то команда? Нет команды для редактирования таймера выключения?
— Andrestand

@ И принятый ответ показывает, какой API используется инструментом для внутренних целей.
— magicandre1981

-1

Пытаться

%SystemRoot%\System32\RUNDLL32 %SystemRoot%\System32\USER32.DLL,LockWorkStation

Возможно, вам придется зайти в панель управления и настроить экранную заставку на «нет».


Это делает только то, что LockWorkStationпредлагает имя команды - блокирует сеанс текущего пользователя. Этого же эффекта можно достичь, нажав [Win] + [L].
— user1306322
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.