Java实现全局的键盘鼠标模拟

Java 实现全局(全操作系统)的键盘鼠标模拟,Java的Robot类实现的是本窗口级的鼠标键盘模拟,Java实现全操作系统级的鼠标和键盘模拟就需要SWT Win32 Extension来帮助。

需要SWT Win32 Extension的包支持:http://feeling.sourceforge.net/index.php

(一)键盘模拟
view plaincopy to clipboardprint?
import org.sf.feeling.swt.win32.extension.Win32;
import org.sf.feeling.swt.win32.extension.io.Keyboard;

public class KeyboardSnippet {
public static void main(String[] args) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Keyboard.keyDown(Win32.VK_LWIN, 0, false);//键盘上的Win键
Keyboard.keyDown('M', 0, false);
Keyboard.keyUp('M', 0, false);
Keyboard.keyUp(Win32.VK_LWIN, 0, false);
}
}
import org.sf.feeling.swt.win32.extension.Win32;
import org.sf.feeling.swt.win32.extension.io.Keyboard;

public class KeyboardSnippet {
public static void main(String[] args) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Keyboard.keyDown(Win32.VK_LWIN, 0, false);//键盘上的Win键
Keyboard.keyDown('M', 0, false);
Keyboard.keyUp('M', 0, false);
Keyboard.keyUp(Win32.VK_LWIN, 0, false);
}
}

(二)鼠标模拟
view plaincopy to clipboardprint?
import org.sf.feeling.swt.win32.extension.io.Mouse;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;

public class MouseSnippet {

public static void main(String[] args) {
Mouse.mouseMove(new Point(0, 65535 / 3), true);
for (int i = 0; i < 1000; i++) {
Mouse.mouseMove(new Point(1, 0), false);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Mouse.mouseClick(Mouse.MOUSE_RIGHT, Display.getDefault().getCursorLocation(), true);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
Mouse.mouseMove(new Point(65535 / 2, 65535 / 2), true);
Mouse.mouseClick(Mouse.MOUSE_LEFT, new Point(0, 0),false);
for (int i = 0; i < 10; i++) {
Mouse.mouseWheel(1, true);
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓