如何使用 PowerShell 关闭屏幕?

如何使用 PowerShell 关闭屏幕?

我需要能够立即手动关闭屏幕。

我试过powercfg /change monitor-timeout-ac 0,但似乎将值设置为 0 会将其变为永不。0.1 等值也会将其更改为永不。

有什么方法可以将此值设置为 0 分钟,或者是否有其他命令可以用来手动关闭屏幕?

答案1

此 TechNet 脚本页面

powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)

答案2

(运行此程序的副作用是也会锁定 Windows 10 中的工作站。您需要知道密码才能重新登录)

在 Powershell 中运行:

(Add-Type '[DllImport("user32.dll")]public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)

这是关闭显示器的正确答案。是的,它还可以使用 Powershell(和一些 .NET C# 代码)关闭笔记本电脑上的显示器

答案3

以前的解决方案有效,但它们锁定了 powershell 输入。

保持 powershell 输入有效的另一种方法是使用PostMessage而不是SendMessage

(Add-Type "[DllImport(""user32.dll"")] public static extern int PostMessage(int hWnd, int hMsg, int wParam, int lParam);" -Name "Win32PostMessage" -Namespace Win32Functions -PassThru)::PostMessage(0xffff, 0x0112, 0xF170, 2)

答案4

DisplayConfig 是要使用的东西!

对于其他在这里找到这篇文章的人来说,你可以找到解决方法:

安装 DisplayConfig 模块:PowerShell 库 | DisplayConfig

获取你的显示信息(查看显示器ID):Get-DisplayInfo

你应该得到如下结果:

PS C:\Users\user1> Get-DisplayInfo

 DisplayId DisplayName      Active  Primary Position    Mode           ConnectionType  --------- -----------      ------  ------- --------   
----                  --------------
         1 PHL 272V8          True     True 0 0         1920x1080@74,973 Hz      DisplayPort
         2 Mi Monitor         True    False 1920 0      3440x1440@144 Hz         DisplayPort
         3 Philips UHDTV     False    False 0 0                                         HDMI

您可以使用以下方式获取命令列表Get-Command -Module DisplayConfig

PS C:\Users\user1> Get-Command -Module DisplayConfig

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Copy-DisplaySource                                 1.0.5      DisplayConfig
Cmdlet          Disable-Display                                    1.0.5      DisplayConfig
Cmdlet          Disable-DisplayAdvancedColor                       1.0.5      DisplayConfig
Cmdlet          Enable-Display                                     1.0.5      DisplayConfig
Cmdlet          Enable-DisplayAdvancedColor                        1.0.5      DisplayConfig
Cmdlet          Get-DisplayColorInfo                               1.0.5      DisplayConfig
Cmdlet          Get-DisplayConfig                                  1.0.5      DisplayConfig
Cmdlet          Get-DisplayInfo                                    1.0.5      DisplayConfig
Cmdlet          Get-DisplayProfile                                 1.0.5      DisplayConfig
Cmdlet          Get-DisplayScale                                   1.0.5      DisplayConfig
Cmdlet          Set-DisplayPosition                                1.0.5      DisplayConfig
Cmdlet          Set-DisplayPrimary                                 1.0.5      DisplayConfig
Cmdlet          Set-DisplayProfile                                 1.0.5      DisplayConfig
Cmdlet          Set-DisplayRefreshRate                             1.0.5      DisplayConfig
Cmdlet          Set-DisplayResolution                              1.0.5      DisplayConfig
Cmdlet          Set-DisplayRotation                                1.0.5      DisplayConfig
Cmdlet          Set-DisplayScale                                   1.0.5      DisplayConfig
Cmdlet          Undo-DisplayConfigChanges                          1.0.5      DisplayConfig
Cmdlet          Use-DisplayConfig                                  1.0.5      DisplayConfig

要禁用任何屏幕使用命令Disable-Display [ID]

要启用任何屏幕使用命令Enable-Display [ID]

相关内容