我正在开发一个 Web 应用程序,该应用程序有时需要在显示器上处于活动状态数小时而没有人接触计算机。
问题是某些计算机有屏幕保护程序,或者更糟糕的是 - 在不活动时进入睡眠模式。
我正在想办法绕过它。我搜索了 java applet 或者可能只是这样做的 flash 文件。不幸的是,我什么也没找到。
对于这个过于笼统的问题,我很抱歉,但我对这个问题很无助
我正在开发一个 Web 应用程序,该应用程序有时需要在显示器上处于活动状态数小时而没有人接触计算机。
问题是某些计算机有屏幕保护程序,或者更糟糕的是 - 在不活动时进入睡眠模式。
我正在想办法绕过它。我搜索了 java applet 或者可能只是这样做的 flash 文件。不幸的是,我什么也没找到。
对于这个过于笼统的问题,我很抱歉,但我对这个问题很无助
我已经为您编写了 Java 小程序。它将每59秒将鼠标光标向右和向后移动一个像素,有效地防止屏幕保护程序启动。
请注意,由于安全限制,需要对这个小程序进行签名并授予在客户端上工作的createRobot
权限,否则它将无法初始化Robot
类。但这是这个问题范围之外的问题。
import java.applet.Applet;
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;
/**
* Moves the mouse cursor once in a minute to prevent the screen saver from
* kicking in.
*/
public class ScreenSaverDisablerApplet extends Applet {
private static final int PERIOD = 59;
private Timer screenSaverDisabler;
@Override
public void start() {
screenSaverDisabler = new Timer();
screenSaverDisabler.scheduleAtFixedRate(new TimerTask() {
Robot r = null;
{
try {
r = new Robot();
} catch (AWTException headlessEnvironmentException) {
screenSaverDisabler.cancel();
}
}
@Override
public void run() {
Point loc = MouseInfo.getPointerInfo().getLocation();
r.mouseMove(loc.x + 1, loc.y);
r.mouseMove(loc.x, loc.y);
}
}, 0, PERIOD*1000);
}
@Override
public void stop() {
screenSaverDisabler.cancel();
}
}