【发布时间】:2011-04-09 09:23:31
【问题描述】:
如何在 Java 应用程序中打开和关闭监视器?
如果您想知道为什么,这是一个信息亭风格的应用程序,在晚上关闭显示器会很棒。是的,您可以在机器的屏幕保护程序设置中执行此操作,但最好以编程方式执行此操作并避免在每台计算机上进行配置。
【问题讨论】:
如何在 Java 应用程序中打开和关闭监视器?
如果您想知道为什么,这是一个信息亭风格的应用程序,在晚上关闭显示器会很棒。是的,您可以在机器的屏幕保护程序设置中执行此操作,但最好以编程方式执行此操作并避免在每台计算机上进行配置。
【问题讨论】:
假设你在 Windows 上部署你的 Java 应用程序,你可以使用这个 WIN32API 函数:
// turn off monitor
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2);
// turn on monitor
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) -1);
然后你写一点C-JNI wrapper 到调用提到的SendMessage 的函数中,并使用这个小包装器从Java 中关闭监视器。
【讨论】:
虽然您可以使用 Java 查询监视器配置,但如果不使用 JNI,则无法以编程方式打开和关闭监视器。
【讨论】:
我在网上看到了这个名为nircmd 的exe。它是一个免费软件,任何人都可以使用。它有一个内置的功能来做到这一点。
nircmd.exe monitor off
还可以在网站上找到详细的帮助。 只需在您的程序中使用它并使用
调用它Runtime.getRuntime().exec(this.getClass().getResource("nircmd.exe").getPath());
或者把它放到windows目录下并从那里运行。
【讨论】:
您可以打开一个全屏摆动窗口,使其完全变黑,这样就可观察到的行为而言,显示器会关闭。
【讨论】: