当屏幕保护程序打开时,全屏java应用程序最小化
我有一个应用程序设置了全屏框架,但在屏幕保护程序打开时似乎最小化。我希望此应用成为触摸屏信息亭用户可以使用的唯一应用,因此这是一个问题。无论如何要防止这一点?当屏幕保护程序打开时,全屏java应用程序最小化
另一种方法是增加一个窗口监听器和复位状态时,它的失效:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent e) {
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
// or go to fullscreen mode here
}
});
但禁止屏幕保护可能是开始的最好的事情。
这是我一直在寻找的途径。 – davidahines 2011-05-31 19:51:40
The internet说,跨平台的方式来实现这一目标是调度键盘事件与此代码:
import java.awt.Robot;
public void disableScreenSaver() throws AWTException {
Robot r = new Robot();
r.waitForIdle();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_CONTROL);
}
,并安排其运行每几分钟(例如用thread.sleep();
)。这样屏幕保护程序就不会显示出来。
我不知道,不过,关于非hackish的,跨平台的解决方案,我会很高兴地看到一个从别人谁知道它:)
不要在循环中的一个线程中使用'thread.sleep();'。改为使用'ScheduledExecutorService'。 – 2014-03-11 08:34:22
可能(还没有尝试过! ),你会通过的答案相结合,这些问题得到答案:
Calling Win32 API method from Java
Need to disable the screen saver/screen locking in Windows C#/.Net
当然,这只能在Windows中,这就是为什么我问你关于你的操作系统:)
您使用哪种操作系统? – Serafeim 2011-05-30 15:30:21
在虚拟机中运行的Windows XP – davidahines 2011-05-30 15:38:29
难道你不能只是禁用屏幕保护程序? – 2011-05-30 15:56:51