如何在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包装器写入调用上述SendMessage并使用小包装器从Java关闭监视器。

虽然您可以使用Java查询监视器配置,但无法在不使用JNI的情况下以编程方式打开和关闭监视器。

我在网上看到过这个名为nircmd的 exe 文件 。 它是一个免费软件,可供任何人使用。它具有内置function,可以做到这一点。

 nircmd.exe monitor off 

网站上也提供了详细的帮助。 只需在您的程序中使用它并使用它

 Runtime.getRuntime().exec(this.getClass().getResource("nircmd.exe").getPath()); 

或者将它放到Windows目录并从那里运行它。

您可以打开全屏旋转窗口,使其完全变黑,因此关于可观察行为的显示器将被关闭。