「ディスプレイをオフにする」を手動でトリガーする方法は?[複製]


13

Windows 7で「ディスプレイをオフにする」機能を手動でトリガーするにはどうすればよいですか?これは通常、ユーザーがマウスを動かさないか、一定時間キーを押したときに自動的に発生します(コントロールパネルの電源管理セクション)。

サードパーティのソフトウェアまたは本格的なアプリケーションは素晴らしいですが、Windows 7にネイティブなアプローチを好むでしょう。コマンドラインなどです。


モニタースリープオプションの1分未満の時間は?:このメソッド適用する場合には役立つだろう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正しい。スクリーンセーバーは、ディスプレイをオフにしません。
ランス14

@ user1306322回答が更新されました。
stderrの

より良い答えがないため、私はこれを受け入れています。これは、コンピューターと対話していないときにのみ役立つことに注意してください。つまり、画面の電源をオフのままにするには、ボタンやマウスへのタッチを停止する必要があります。このコマンドを実行する前に1〜2秒のタイマーを設定すると、非常に便利です。
user1306322 14

6

ネイティブソリューションではありません-無料の外部プログラムNircmdが必要です。しかし、それは非常に便利で、使用するのに何もかかりません。

モニターをオフにするには:

nircmd.exe monitor off

モニターをオンにするには:

nircmd.exe monitor on

4

Monitor Off Utilityを数年間使用しています。ショートカットの組み合わせを割り当て、表示を無効にする場合はそれを押します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


答えがなぜ投票されたのかはわかりません。ユーティリティはOPが何を望んでないので効果を中和
Ejaz

この種のソフトウェアは、何らかのコマンドで実行できることを実際に実行していませんか?オフタイマーを編集するコマンドはありませんか?
Andrestand

@Andrestandの回答は、ツールによって内部的に使用されるAPIを示しています。
magicandre1981

-1

試してみる

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

コントロールパネルに移動し、スクリーンセーバーを「なし」に設定する必要がある場合があります。


これは、LockWorkStationコマンド名が示唆することだけを行います-現在のユーザーのセッションをロックします。[Win] + [L]を押すと、同じ効果が得られます。
user1306322
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.