有没有办法关闭 Windows(7)中的显示,最好不使用额外的软件?
Powershell 脚本运行良好,但打开显示器后离开命令行窗口。
答案1
答案2
在笔记本电脑上,您可以使用键盘快捷键组合 Fn+F7(F7 可能因笔记本电脑型号而异);对于台式机,您可以始终使用电源按钮。
您是否需要任何其他规格,例如鼠标移动时唤醒或其他?
您随时可以创建快捷方式并为黑色屏幕保护程序分配键盘快捷键,请使用以下路径:
%systemroot%\system32\scrnsave.scr /s
这不会关闭你的屏幕但会使其完全变黑
答案3
您可以使用WinAPI 调用 SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
其中HWND_BROADCAST = 0xFFFF
,
WM_SYSCOMMAND = 0x0112
和SC_MONITORPOWER = 0xF170
。2
表示显示器正在关闭。
有多种方式可以拨打电话:
单独的可执行文件。您可以通过脚本、命令行、运行窗口、快捷方式 (
*.lnk
) 等来启动它。请注意可以使用键盘快捷键调用快捷方式可执行文件可以用 C 或 C++ 编写,也可以通过 .NET 语言(C# 或电源外壳),或者许多其他具有外语接口的语言(例如 Java 中的 JNI)。自动热键脚本。对于非程序员来说,这种方式可能更简单。进行自定义仍然需要一些脚本。此脚本在 Win + M 上关闭显示器:
#m:: Sleep 1000 SendMessage, 0x112, 0xF170, 2,, Program Manager return
注意 AutoHotkey 脚本中调用前的超时SendMessage
。它为用户提供了释放按键的机会(以防释放按键会再次唤醒监视器)。即使从其他语言的脚本进行调用,也不要忘记这一点。
有关详细信息,请参阅SendMessage
功能,WM_SYSCOMMAND
信息和自动热键SendMessage
。有趣的是,自 Windows 8 以来,使用相同的方法打开监视器不起作用,但有一个解决方法。
答案4
例如使用 Win+R 命令:
powershell -command $obj = Add-Type -MemberDefinition '[DllImport(""""user32.dll"""")] public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name fn -Namespace ns -PassThru; $obj::SendMessage(0xffff, 0x0112, 0xF170, 2)
不幸的是,无法放入快捷方式 .lnk 文件,因为行太长,我使用 Flow Launcher 和我的收藏夹插件运行它,它支持长命令行。