2012-09-09 8 views
5

誰かがコンピュータに触れることなく何時間もモニター上でアクティブにする必要があるウェブアプリケーションを作成しています。ウェブサイトからスクリーンセーバー/スリープモードを無効にする

問題は、一部のコンピュータではスクリーンセーバーがあるか、スリープモードが悪いことです。

私はそれを回避する方法を考えようとしています。私はJavaアプレットか多分それだけを行うフラッシュファイルを探しました。私は残念ながら何も見つかりませんでした。

私はあまりにも一般的な質問には申し訳ないが、私はあなたのためのJavaアプレットを書いたこの主題

+4

私はかなりそういうことはできないと確信しています。少なくともJSまたはFlashを介して。 –

+0

javascriptタグを削除する必要があります。javascriptを使って行うことはできません。 –

+0

カスタムmousemoveイベントをディスパッチするとできますが、これは本当に汚いハックです。 –

答えて

1

とかなり無力です。それは右にマウスのカーソルを1つのピクセルずつ移動し、バックごとに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(); 
    } 

} 
関連する問題