Як вручну запустити "вимкнути дисплей"? [дублікат]


13

Як вручну запустити функцію "вимкнути показ" у Windows 7? Зазвичай це відбувається автоматично, коли користувач протягом певного часу не рухає мишкою або не натискає клавіш (розділ управління живленням панелі управління).

Програмне забезпечення сторонніх розробників або повноцінний додаток - це приємно, але я вважаю за краще підхід, створений для Windows 7. Як командний рядок чи щось таке.


Часи нижче хвилини для варіанта сну монітора? Це допоможе при застосуванні цього методу: answer.microsoft.com/en-us/windows/forum/windows_7-desktop/…
Andrestand

Відповіді:


9

Цей сценарій, написаний у 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

Встановити це у .batфайлі та подвійне клацання не працює. Або API змінився, або я не знаю, як це виконати. Який метод "запуску" очікується для цього сценарію?
Хаві Монтеро

7

Не рідне рішення - потрібна безкоштовна зовнішня програма Nircmd . Але він досить корисний і не потребує нічого для його використання.

Щоб вимкнути монітор:

nircmd.exe monitor off

Щоб увімкнути монітор:

nircmd.exe monitor on

4

Я використовую утиліту Monitor Off Utility кілька років. Я призначив комбінацію ярликів і натисніть її, якщо мені подобається відключити показ.

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

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


Не впевнений, чому відповідь було оскаржено. Нейтралізуючи ефект, оскільки утиліта робить те, що хоче ОП,
Еджаз

Чи насправді цей тип програмного забезпечення не робить щось, яке може зробити якась команда? Немає команди для редагування таймера вимкнення?
Andrestand

@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.