我需要能够立即手动关闭屏幕。
我试过powercfg /change monitor-timeout-ac 0,但似乎将值设置为 0 会将其变为永不。0.1 等值也会将其更改为永不。
有什么方法可以将此值设置为 0 分钟,或者是否有其他命令可以用来手动关闭屏幕?
答案1
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]