通过命令关闭 Windows 中的显示

通过命令关闭 Windows 中的显示

有没有办法关闭 Windows(7)中的显示,最好不使用额外的软件?

Powershell 脚本运行良好,但打开显示器后离开命令行窗口。

答案1

还有几个选择:

  • 关闭液晶显示屏- 只需将可执行文件放在桌面上即可
  • 近红外命令- 您需要将 nircmd.exe 复制到 Windows 系统目录,或将其位置添加到 PATH 环境变量。然后只需nircmd monitor off从命令行运行即可。更多信息请参见链接。

答案2

在笔记本电脑上,您可以使用键盘快捷键组合 Fn+F7(F7 可能因笔记本电脑型号而异);对于台式机,您可以始终使用电源按钮。

您是否需要任何其他规格,例如鼠标移动时唤醒或其他?

您随时可以创建快捷方式并为黑色屏幕保护程序分配键盘快捷键,请使用以下路径:

%systemroot%\system32\scrnsave.scr /s

这不会关闭你的屏幕但会使其完全变黑

答案3

您可以使用WinAPI 调用 SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)其中HWND_BROADCAST = 0xFFFFWM_SYSCOMMAND = 0x0112SC_MONITORPOWER = 0xF1702表示显示器正在关闭。

有多种方式可以拨打电话:

  • 单独的可执行文件。您可以通过脚本、命令行、运行窗口、快捷方式 ( *.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 和我的收藏夹插件运行它,它支持长命令行。

https://github.com/stax76/Flow.Launcher.Plugin.Favorites

相关内容