📄 screenscanner.java
字号:
/*
* ScreenScanner.java
*
* Created on May 9, 2007, 5:46 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package hk.haha.onet.ajaxvnc;
import java.util.HashMap;
/**
*
* @author heic
*/
public class ScreenScanner implements Runnable {
private boolean DEBUG = false;
private KVMManager kvmman;
private TileManager tileman;
private TileObservable tileobs;
private long starttime;
private long currenttime;
private long numscan;
private Thread runner;
/** Creates a new instance of ScreenScanner */
public ScreenScanner(KVMManager kvmman_, TileManager tileman_, TileObservable tileobs_) {
kvmman = kvmman_;
tileman = tileman_;
tileobs = tileobs_;
starttime = System.currentTimeMillis();
currenttime = System.currentTimeMillis();
numscan = 0;
}
public void run() {
tileman.setSize((int)kvmman.getScreenBound().getWidth(), (int)kvmman.getScreenBound().getHeight());
starttime = System.currentTimeMillis();
while(true) {
try {
tileman.processImage(kvmman.captureScreen(), 6,6);
notifyObservers();
numscan++;
//Thread.sleep(300);
currenttime = System.currentTimeMillis();
if (DEBUG) {
System.out.println(getClass().getName() + ": FPS = " + (double)numscan/(currenttime-starttime)*1000);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
private void notifyObservers()
{
for (int i=0; i<tileman.getNumXTile(); i++) {
for (int j=0; j<tileman.getNumYTile(); j++) {
if (tileman.getTile(i, j).isDirty()) {
tileobs.tileChanged(i, j);
}
tileman.getTile(i, j).clearDirty();
}
}
}
public void startScreenScanning()
{
if (runner == null) {
runner = new Thread(this);
runner.start();
}
}
public void startPerformanceTest()
{
DEBUG = true;
startScreenScanning();
}
// for testing only
public static void main(String args[])
{
HashMap sessions = new HashMap();
KVMManager km = new KVMManager();
TileManager tm = new TileManager();
SessionManager sm = new SessionManager();
ScreenScanner ss = new ScreenScanner(km, tm, sm);
ss.startPerformanceTest();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -