Matlab探寻(一):控制鼠标和模拟键盘(java.awt.Robot)
来源:互联网 发布:mac版金蝶友商智慧记 编辑:程序博客网 时间:2024/06/07 01:59
Mtalab真的是很强大,不过它自身不能实现鼠标单击和按下键盘等事件的模拟。本文通过调用java.awt.Robot类来实现以上功能
添加引用
首先在Matlab中添加以下代码,引用java.awt.Robot类,并实例化
import java.awt.Robot;import java.awt.event.*;robot = java.awt.Robot;
控制鼠标
设置鼠标光标位置,我们可以使用以下方法 , 其中(x, y)为鼠标光标相对于屏幕左上角的坐标 。这样我们就可以灵活控制鼠标移动到屏幕的任何位置。
robot.mouseMove(X, Y)
控制鼠标单击,可以使用以下方法,其中为了成功单击,figure必须具有焦点,鼠标必须放置在figure上,所以添加了figure(gcf); drawnow;
figure(gcf); drawnow;robot.mousePress (java.awt.event.InputEvent.BUTTON1_MASK);robot.mouseRelease(java.awt.event.InputEvent.BUTTON1_MASK);
控制鼠标双击,同样的道理,把mousePress和mouseRelease重新调用一遍:
figure(gcf); drawnow;robot.mousePress (java.awt.event.InputEvent.BUTTON1_MASK);robot.mouseRelease(java.awt.event.InputEvent.BUTTON1_MASK);robot.mousePress (java.awt.event.InputEvent.BUTTON1_MASK);robot.mouseRelease(java.awt.event.InputEvent.BUTTON1_MASK);
当然如果没有使用figure,而是在Matlab里使用其他程序的界面(比如WPF),figure(gcf); drawnow;可以删掉,但是必须保证你的界面获取了焦点。
当然还可以控制鼠标其他键,方法如下 :
java.awt.event.InputEvent.BUTTON1_MASK // left mouse button java.awt.event.InputEvent.BUTTON2_MASK // middle mouse buttonjava.awt.event.InputEvent.BUTTON3_MASK // right mouse button
模拟键盘
和控制鼠标的原理类似,模拟键盘只需要调用不同的方法。模拟按下键盘的“V”,可以这样写:
robot.keyPress (java.awt.event.KeyEvent.VK_V);robot.keyRelease (java.awt.event.KeyEvent.VK_V);
java中常用的(电脑)键盘常量如下:
实际以java API的定义为准:
总结
Matlab的界面不够美观,由于项目数据处理离不开Matlab,最终我不得不使用了WPF界面(至少可以调调Alpha通道吧)和Matlab界面结合的方法。所以就牵扯到用Matlab控制WPF界面切换,于是才想到控制鼠标和模拟键盘。是以为记。
更多内容可以参考:GUI automation using a Robot
- Matlab探寻(一):控制鼠标和模拟键盘(java.awt.Robot)
- Java.awt.Robot类控制鼠标和键盘
- 通过Java.awt.Robot来控制鼠标键盘自动化
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- Java.awt.Robot 控制鼠标移动、键盘按键等输入操作
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法
- Java中用Robot类控制鼠标和键盘的方法
- 使用JAVA Robot 扩展Webdriver 模拟键盘鼠标操作
- selenium模拟鼠标键盘(一)
- Java中用Robot类控制鼠标和键盘的方法2
- 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
- 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
- mouse_event(模拟鼠标)和keybd_event(模拟键盘)
- webservice 搭建(一)
- 自定义圆形图片(RoundImageView)
- POJ 2250 (最长公共子序列LCS)
- 学习Node.js+MongoDB+AngularJS(1)
- JdbcUtils工具类
- Matlab探寻(一):控制鼠标和模拟键盘(java.awt.Robot)
- 初识HTML
- 排列 POJ
- 第一次学习java,很难受
- SDP协议
- Linux 内核中的 GCC 特性
- 微信公众号开发-emoji表情存库异常
- 前台页面跳转的例子(两种实例)
- 使用<a>标签,连接到另外一个页面