2012-09-09 5 views
5

Ich arbeite an einer Webanwendung, die manchmal stundenlang auf dem Bildschirm aktiv sein muss, ohne dass jemand den Computer berührt.Bildschirmschoner/Schlafmodus über eine Website deaktivieren

Das Problem ist, dass einige Computer ihren Bildschirmschoner haben, oder schlechter - Schlafmodus, während sie inaktiv sind.

Ich versuche, einen Weg zu finden, um es zu umgehen. Ich suchte nach Java-Applets oder vielleicht nach einer Flash-Datei, die nur das tut. Ich habe leider nichts gefunden.

Es tut mir leid für die zu allgemein Frage, aber ich bin ziemlich hilflos mit diesem Thema

+4

Ich bin mir ziemlich sicher, so etwas kann man nicht machen. Zumindest über JS oder Flash. –

+0

Sie sollten das Javascript-Tag entfernen, es gibt keine Möglichkeit, es mit JavaScript zu tun ... –

+0

Sie könnten es tun, wenn Sie benutzerdefinierte Mousemove-Ereignisse versenden, aber das ist ein wirklich schmutziger Hack. –

Antwort

1

ich das Java-Applet für Sie geschrieben haben. Es wird der Mauszeiger ein Pixel nach rechts bewegen und alle 59 Sekunden zurück, effektiv von den Bildschirmschoner verhindert in kicking.

Beachten Sie, dass because of security restrictions dieses Applet be signed benötigen und granted the createRobot permission auf dem Client zu arbeiten, sonst wird es Fehler beim Initialisieren der Klasse Robot. Aber das ist ein Problem außerhalb des Umfangs dieser Frage.

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(); 
    } 

} 
Verwandte Themen