我需要一些幫助來隱藏和禁用鼠標指針。但我需要將所有鼠標事件發送到其他設備。 所以主要的場景是:打開SWT應用程序 - >按下按鈕(或標籤,或你想要什麼...) - >消失鼠標SWT端,無指針,無事件 - >鼠標指針出現在其他設備 - - >我可以從主要的物理鼠標控制其他設備的鼠標指針。SWT和完全禁用和隱藏鼠標指針
我現在發現的是如何使指針透明,我想到了可以每20ms修復一次位置的計時器。但我怎樣才能防止事件發生?我還能抓住他們嗎?
問候
更新:
最終的解決方案:新的全屏窗口半透明
public class AntiMouseGui {
Display display;
Shell shell;
final int time = 20;
private Runnable timer = null;
public AntiMouseGui(final Display display, final DebugForm df, final PrintWriter socketOut) {
Image bg = new Image(display, "icons/hide_mouse_wallpapaer.png");
shell = new Shell(display, SWT.NO_TRIM | SWT.ON_TOP);
final int dis_x = display.getClientArea().width, dis_y = display.getClientArea().height;
shell.setSize(dis_x, dis_y);
shell.setBackgroundImage(bg);
shell.setAlpha(50);
shell.setMinimumSize(shell.getSize());
shell.open();
timer = new Runnable() {
public void run() {
Point cur_loc = display.getCursorLocation();
int span_x = dis_x/2 - cur_loc.x, span_y = dis_y/2 - cur_loc.y;
df.appendTxt("span x = " + span_x + " span y = " + span_y);
if (span_x != 0) Controller.moveMouseRight(socketOut, -span_x);
if (span_y != 0) Controller.moveMouseDown(socketOut, -span_y);
display.setCursorLocation(new Point(dis_x/2, dis_y/2));
if (!shell.isDisposed()) display.timerExec(time, this);
}
};
display.timerExec(time, timer);
}
}
請詳細說明。很難說這裏到底在問什麼。 – Baz
我的意思是我需要捕獲鼠標事件並將它們發送到其他設備 – user1417608
從哪裏抓住它們並將它們發送到哪裏? – Baz