|
么使用命令關(guān)閉它機器上的顯示器。我沒搞懂它的意圖,但是我猜這家伙可能想看恐怖電影,屏幕的閃爍影響他的體驗,或者極有可能他想讓自己的筆記本盡可能地省電。無論怎樣我在網(wǎng)上搜索之后,整理出了下面的腳本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | # 調(diào)用WindowsAPI 關(guān)閉顯示器
# 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
);
}
}
}
'
|
腳本使用Add-Type命令定義一個靜態(tài)的類Utilities.Display。類中定義了可以用來調(diào)用關(guān)閉顯示器的公有方法PowerOff()。運行上面的腳本(沒有輸出)先定義類,然后就可以使用下面的腳本關(guān)閉顯示器了。
1 | [Utilities.Display]::PowerOff()
|
如果把它包裝成一個PowerShell函數(shù)Switch-DisplayOff,這樣可以方便調(diào)用和查找命令:
1 2 3 4 | function Switch-DisplayOff
{
[Utilities.Display]::PowerOff()
}
|
現(xiàn)在就可以在你的PowerShell會話中使用了,如果決定把它放置在你的$profile中,同樣請確保整個類型的定義也包含其中。
荔非苔注:這里所說的關(guān)閉顯示器是關(guān)閉機器向顯示器發(fā)送信號,有的顯示器在未收到信號超時后會自動關(guān)閉。如果信號關(guān)閉后可以按鍵盤任意鍵喚醒。喚醒有個過程,不要著急,又不是搶火車票,按一次就夠了。
|