如何使用 Windows 的 DLL 入口点关闭显示器?

如何使用 Windows 的 DLL 入口点关闭显示器?

据您所知,我们可以通过rundll32 <dll-file>,<Entry point>命令行调用 Windows7 DLL 的入口点。例如,我使用以下命令锁定屏幕Windows 命令行

rundll32.exe user32.dll,LockWorkStation

现在,我想知道是否有任何方法可以通过这种方式关闭我的显示器?即是否有任何入口点可以在 CMD 中调用并关闭我的显示器?

答案1

我不知道如何在 win7 或更高版本中使用 rundll32 来实现这一点,但你可以使用一个名为nircmd

要关闭显示器:

nircmd.exe monitor off

要打开显示器:

nircmd.exe monitor on

您可以将其放入 bat 文件中并创建快捷方式。
您也可以使用名为威兹莫并在命令行中使用它:

wizmo.exe monoff

答案2

在命令行/或 .bat/ .cmd/ .com 文件中: 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 命令,您可以删除转义符和 powershell 指令(并将其保存为 ps1 文件)。 (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)

值得注意的是,这似乎会让一个进程永远运行,你需要确保稍后将其终止或采取其他措施。我现在正在处理这个问题,这就是我在这里遇到的问题。如果我改正了,我会留下答案。

相关内容