么使用命令關(guān)閉它機(jī)器上的顯示器。我沒(méi)搞懂它的意圖,但是我猜這家伙可能想看恐怖電影,屏幕的閃爍影響他的體驗(yàn),或者極有可能他想讓自己的筆記本盡可能地省電。無(wú)論怎樣我在網(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命令定義一個(gè)靜態(tài)的類Utilities.Display。類中定義了可以用來(lái)調(diào)用關(guān)閉顯示器的公有方法PowerOff()。運(yùn)行上面的腳本(沒(méi)有輸出)先定義類,然后就可以使用下面的腳本關(guān)閉顯示器了。
1 | [Utilities.Display] ::PowerOff() |
如果把它包裝成一個(gè)PowerShell函數(shù)Switch-DisplayOff,這樣可以方便調(diào)用和查找命令:
1 2 3 4 | function Switch -DisplayOff { [Utilities.Display] ::PowerOff() } |
現(xiàn)在就可以在你的PowerShell會(huì)話中使用了,如果決定把它放置在你的$profile中,同樣請(qǐng)確保整個(gè)類型的定義也包含其中。
荔非苔注:這里所說(shuō)的關(guān)閉顯示器是關(guān)閉機(jī)器向顯示器發(fā)送信號(hào),有的顯示器在未收到信號(hào)超時(shí)后會(huì)自動(dòng)關(guān)閉。如果信號(hào)關(guān)閉后可以按鍵盤任意鍵喚醒。喚醒有個(gè)過(guò)程,不要著急,又不是搶火車票,按一次就夠了。
聯(lián)系客服