2012-09-09 59 views
5

Tôi đang làm việc trên một ứng dụng web cần phải hoạt động trên màn hình đôi khi trong nhiều giờ mà không cần ai chạm vào máy tính.Tắt chế độ bảo vệ màn hình/chế độ ngủ thông qua một trang web

Vấn đề là một số máy tính có trình bảo vệ màn hình của chúng hoặc chế độ ngủ tệ hơn trong khi chúng không hoạt động.

Tôi đang cố nghĩ ra một cách để bỏ qua nó. Tôi đã tìm kiếm các applet java hoặc có thể là một tệp flash chỉ thực hiện điều đó. Tôi không tìm thấy gì, thật không may.

Tôi xin lỗi vì câu hỏi quá chung chung nhưng tôi khá bất lực với chủ đề này

+4

Tôi khá chắc chắn, bạn không thể làm bất cứ điều gì như thế. Ít nhất thông qua JS hoặc Flash. –

+0

Bạn nên loại bỏ thẻ javascript, không có cách nào bạn có thể làm điều đó với javascript ... –

+0

Bạn có thể làm điều đó, nếu bạn gửi các sự kiện mousemove tùy chỉnh, nhưng đây là một hack thực sự bẩn. –

Trả lời

1

Tôi đã viết Java applet cho bạn. Nó sẽ di chuyển con chuột con trỏ một pixel sang phải và ngược lại mỗi 59 giây, ngăn chặn có hiệu quả bảo vệ màn hình từ đá trong.

Lưu ý rằng because of security restrictions applet này sẽ cần phải be signedgranted the createRobot permission để làm việc trên máy khách, nếu không nó sẽ không thể khởi tạo lớp học Robot. Nhưng đó là một vấn đề nằm ngoài phạm vi của câu hỏi này.

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

} 
Các vấn đề liên quan