【问题标题】:Disable screen saver / sleep mode through a website通过网站禁用屏幕保护程序/睡眠模式
【发布时间】:2012-09-09 18:47:52
【问题描述】:

我正在开发一个 Web 应用程序,它有时需要在显示器上处于活动状态数小时而没有任何人触摸计算机。

问题是某些计算机有屏幕保护程序,或者更糟糕的是 - 在不活动时进入睡眠模式。

我正在想办法绕过它。我搜索了 java applet 或者可能只做这个的 flash 文件。很遗憾,我什么也没找到。

对于这个过于笼统的问题我很抱歉,但我对这个问题很无助

【问题讨论】:

  • 我很确定,你不能这样做。至少通过 JS 或 Flash。
  • 你应该删除javascript标签,你没有办法用javascript做......
  • 如果您调度自定义 mousemove 事件,您可以这样做,但这是一个非常肮脏的 hack。
  • 想象一下,如果这样做很容易。网站会接管你的鼠标光标并强迫你点击喜欢,接受下载文件的运行等。幸运的是使用 JS 或 Flash 你不能这样做。
  • 您可以使用stackoverflow.com/a/2322775/846476。如果您移动鼠标/光标,那么您可能可以阻止它进入睡眠状态或开始屏幕保护。虽然这有点 hack,所以我不确定它会起作用

标签: java javascript flash applet


【解决方案1】:

我已经为您编写了 Java 小程序。它会每59秒将鼠标光标向右和向后移动一个像素,有效地防止屏幕保护程序启动。

注意because of security restrictions这个小程序需要be signedgranted the createRobot permission才能在客户端上工作,否则将无法初始化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();
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-08
    • 2011-04-09
    • 2023-03-31
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    相关资源
    最近更新 更多