2012-09-09 13 views
5

Pracuję nad aplikacją internetową, która musi być aktywna na monitorze czasami przez wiele godzin, bez konieczności dotykania komputera.Wyłącz wygaszacz ekranu/tryb uśpienia za pośrednictwem strony internetowej

Problemem jest to, że niektóre komputery mają swój wygaszacz ekranu, lub co gorsza - tryb uśpienia, podczas gdy ich nieaktywne.

staram się wymyślić sposób, żeby go ominąć. Szukałem apletów Java lub pliku flash, który robi tylko to. Nic nie znalazłem, niestety.

Przepraszam za zbyt ogólne pytanie, ale jestem całkiem bezradny z tym tematem

+4

Jestem prawie pewien, że nie można zrobić czegoś takiego. Przynajmniej przez JS lub Flash. –

+0

Należy usunąć tag JavaScript, nie ma sposobu, można to zrobić z javascript ... –

+0

Można to zrobić, jeśli wysyłką zwyczaj mousemove zdarzenia, ale to jest naprawdę brudna Hack. –

Odpowiedz

1

Pisałem apletu Java dla Ciebie. Będzie ona przesunąć kursor myszy jeden piksel w prawo i tam co 59 sekund, skutecznie zapobiegając wygaszacz ekranu od kopania w.

Zauważ, że because of security restrictions aplet będzie musiał be signed i granted the createRobot permission pracować na kliencie, w przeciwnym razie będzie nie można zainicjować klasy Robot. Ale to problem poza zakresem tego pytania.

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

} 
Powiązane problemy