通过Java.awt.Robot来控制鼠标键盘自动化
2017-07-01 20:43
459 查看
查阅API可以知道Robot类对于鼠标键盘操作的方法:
--1--首先是初始化
[/code]--4--设置延时,相当于睡眠
--5--图像相关
--1--首先是初始化
Robot r=new Robot(); Robot r=new Robot(GraphicsDevice device);//这个指的是以某个特定区域作为坐标系来执行相关操作 r.setAutoDelay(20);//这是设置每一步操作间的间隔,ms为单位--2--键盘相关操作
r.keyPress(KeyEvent.VK_A);//按下按键 r.KeyRelease(KeyEvent.VK_A);//抬起按键--3--鼠标相关操作
r.mouseMove(100,100);//移动鼠标到特定坐标 r.mousePress(KeyEvent.BUTTON1_MASK);//点击鼠标左键 r.mouseRelease(KeyEvent.BUTTON1_MASK);//放开鼠标左键 [code]r.mouseWheel(5);//滚轮滚动
[/code]--4--设置延时,相当于睡眠
r.delay(100);//以ms为单位
--5--图像相关
//--1,获取屏幕区域像素并输入到文件,相当于截图 [code]Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Rectangle screenRectangle = new Rectangle(screenSize); BufferedImage image = r.createScreenCapture(screenRectangle); ImageIO.write(image, "png", new File(fileName)); //--2,获取某个坐标处的像素RGB值 Color color=r.getPixelColor(100, 100); RGB rgb=new RGB(color.getRed(),color.getGreen(),color.getBlue());
整合代码:
import java.awt.AWTException; import java.awt.Color; import java.awt.Rectangle; import java.awt.Robot; import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JOptionPane; import org.eclipse.swt.graphics.RGB; public class MKControl { private static Robot r; MKControl(int delay){ try { r=new Robot(); r.setAutoDelay(delay); } catch (AWTException e) { // TODO 自动生成的 catch 块 //e.printStackTrace(); JOptionPane.showMessageDialog(null, "初始化失败", "提示", JOptionPane.WARNING_MESSAGE); } } //获取对应键值 public int getKey(String key){ switch(key){ /* * 鼠标 */ case "Left": return KeyEvent.BUTTON1_MASK; case "Middle": return KeyEvent.BUTTON2_MASK; case "Right": return KeyEvent.BUTTON3_MASK; /* * 键盘 */ //数字0-9 case "0": return KeyEvent.VK_0; case "1": return KeyEvent.VK_1; case "2": return KeyEvent.VK_2; case "3": return KeyEvent.VK_3; case "4": return KeyEvent.VK_4; case "5": return KeyEvent.VK_5; case "6": return KeyEvent.VK_6; case "7": return KeyEvent.VK_7; case "8": return KeyEvent.VK_8; case "9": return KeyEvent.VK_9; //字母A-Z case "A": return KeyEvent.VK_A; case "B": return KeyEvent.VK_B; case "C": return KeyEvent.VK_C; case "D": return KeyEvent.VK_D; case "E": return KeyEvent.VK_E; case "F": return KeyEvent.VK_F; case "G": return KeyEvent.VK_G; case "H": return KeyEvent.VK_H; case "I": return KeyEvent.VK_I; case "J": return KeyEvent.VK_J; case "K": return KeyEvent.VK_K; case "L": return KeyEvent.VK_L; case "M": return KeyEvent.VK_M; case "N": return KeyEvent.VK_N; case "O": return KeyEvent.VK_O; case "P": return KeyEvent.VK_P; case "Q": return KeyEvent.VK_Q; case "R": return KeyEvent.VK_R; case "S": return KeyEvent.VK_S; case "T": return KeyEvent.VK_T; case "U": return KeyEvent.VK_U; case "V": return KeyEvent.VK_V; case "W": return KeyEvent.VK_W; case "X": return KeyEvent.VK_X; case "Y": return KeyEvent.VK_Y; case "Z": return KeyEvent.VK_Z; //F1-F24 case "F1": return KeyEvent.VK_F1; case "F2": return KeyEvent.VK_F2; case "F3": return KeyEvent.VK_F3; case "F4": return KeyEvent.VK_F4; case "F5": return KeyEvent.VK_F5; case "F6": return KeyEvent.VK_F6; case "F7": return KeyEvent.VK_F7; case "F8": return KeyEvent.VK_F8; case "F9": return KeyEvent.VK_F9; case "F10": return KeyEvent.VK_F10; case "F11": return KeyEvent.VK_F11; case "F12": return KeyEvent.VK_F12; case "F13": return KeyEvent.VK_F13; case "F14": return KeyEvent.VK_F14; case "F15": return KeyEvent.VK_F15; case "F16": return KeyEvent.VK_F16; case "F17": return KeyEvent.VK_F17; case "F18": return KeyEvent.VK_F18; case "F19": return KeyEvent.VK_F19; case "F20": return KeyEvent.VK_F20; case "F21": return KeyEvent.VK_F21; case "F22": return KeyEvent.VK_F22; case "F23": return KeyEvent.VK_F23; case "F24": return KeyEvent.VK_F24; /* * 各功能键 */ //ESC case "esc": return KeyEvent.VK_ESCAPE; //TAB case "tab": return KeyEvent.VK_TAB; //CapsLock case "capslock": return KeyEvent.VK_CAPS_LOCK; //Shift case "shift": return KeyEvent.VK_SHIFT; //Ctrl case "ctrl": return KeyEvent.VK_CONTROL; //Alt case "alt": return KeyEvent.VK_ALT; //Enter case "enter": return KeyEvent.VK_ENTER; //BackSpace case "backspace": return KeyEvent.VK_BACK_SPACE; //Space case "space": return KeyEvent.VK_SPACE; //Home case "home": return KeyEvent.VK_HOME; //End case "end": return KeyEvent.VK_END; //Page_Up 和 Page_Dwon case "page_up": return KeyEvent.VK_PAGE_UP; case "page_down": return KeyEvent.VK_PAGE_DOWN; //方向键 case "up": return KeyEvent.VK_UP; case "down": return KeyEvent.VK_DOWN; case "left": return KeyEvent.VK_LEFT; case "right": return KeyEvent.VK_RIGHT; //小键盘 case "numlock": return KeyEvent.VK_NUM_LOCK; } return 0; } //延时 public void delay(int dd){ r.delay(dd); } //点击鼠标 public void mouseDown(int i){ /* if(i==0){ r.mousePress(KeyEvent.BUTTON1_MASK);//左键 }else if(i==1){ r.mousePress(KeyEvent.BUTTON3_MASK);//右键 }else if(i==2){ r.mousePress(KeyEvent.BUTTON2_MASK);//中键 } */ r.mousePress(i); } //释放鼠标 public void mouseUp(int i){ /* if(i==0){ r.mouseRelease(KeyEvent.BUTTON1_MASK);//左键 }else if(i==1){ r.mouseRelease(KeyEvent.BUTTON3_MASK);//右键 }else if(i==2){ r.mouseRelease(KeyEvent.BUTTON2_MASK);//中键 } */ r.mouseRelease(i); } //移动鼠标 public void mouseMove(int x,int y){ r.mouseMove(x, y); } //滑动鼠标中键 public void mouseMiddle(int length){ r.mouseWheel(length); } //点击鼠标,版本2 public void mouseClick(int i,boolean click){ if(click){ //单击 mouseDown(i); mouseUp(i); }else{ //双击 mouseDown(i); mouseUp(i); mouseDown(i); mouseUp(i); } } //按下键盘 public void keyDown(int key){ r.keyPress(key); } //放开键盘 public void keyUp(int key){ r.keyRelease(key); } //获取像素 public RGB getRGB(int x,int y){ Color color=r.getPixelColor(x, y); return new RGB(color.getRed(),color.getGreen(),color.getBlue()); } //获取截图 public void screenShot(int x,int y,int width,int height,String fileName){ Rectangle rec=new Rectangle(); rec.setBounds(x, y,width, height); BufferedImage image = r.createScreenCapture(rec); try { ImageIO.write(image, "png", new File(fileName)); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
相关文章推荐
- Java.awt.Robot 控制鼠标移动、键盘按键等输入操作
- Matlab探寻(一):控制鼠标和模拟键盘(java.awt.Robot)
- Java.awt.Robot类控制鼠标和键盘
- 利用 java.awt.Robot 类来自动完成一些键盘或鼠标的动作,下面是一个小例子
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法2
- java通过控制鼠标实现屏幕广播
- Java控制鼠标和键盘的方法
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- Java控制鼠标和键盘的方法
- JAVA Robot虚拟鼠标和键盘操作
- 会变色的乌龟(可通过鼠标键盘控制)
- 通过SmartInvoke运用java与flex轻松构建cs程序(捕获鼠标键盘事件)
- Python学习笔记(十七)——用GUI自动化控制键盘鼠标
- Java使用Robot操作键盘和鼠标