2012-09-09 22 views
5

Bilgisayarda hiç kimse dokunmadan bazen saatlerce ekran üzerinde etkin olması gereken bir web uygulamasında çalışıyorum. Sorun, bazı bilgisayarların etkin değilken ekran koruyucu veya kötü uyku moduna sahip olmasıdır.Ekran koruyucu/uyku modunu bir web sitesi aracılığıyla devre dışı bırakma

Bunu atlamanın bir yolunu düşünmeye çalışıyorum. Sadece java uygulamaları veya belki de bir flash dosyası için aradım. Maalesef hiçbir şey bulamadım.

Ben çok genel soru için üzgünüm ama bu konu senin için Java uygulaması yazdım

+4

Eminim ki böyle bir şey yapamazsın. En azından JS veya Flash ile. –

+0

Javascript etiketini kaldırmalısınız, javascript ile yapmanın bir yolu yok ... –

+0

Özel mousemove olaylarını gönderirseniz bunu yapabilirsiniz, ancak bu gerçekten kirli bir hack. –

cevap

1

ile oldukça çaresiz değilim. Bu fare etkin bir tekme gelen ekran koruyucu önlenmesi, sağa bir piksel ve geri her 59 saniyede bir imleç hareket edecektir. Bu uygulama, istemci üzerinde çalışmak için be signed ve granted the createRobot permission gerekecektir Not because of security restrictions o

aksi takdirde olacak Robot sınıfını başlatılamadı. Ama bu sorunun kapsamı dışında bir sorun.

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

} 
İlgili konular