Ⅰ java 程序实现鼠标点击 键盘等事件
这个用MouseListener里的mouseEntered(MouseEvent
e)方法。
鼠标进入区域就产生事件反应。
如果之前申明了点击事件可以在entered时间里呼叫clicked事件。
Ⅱ Java写的模拟鼠标的游戏辅助,运行时没法在游戏界面正常点击
java模拟键盘鼠标等操作, 我也研究过几天,现在把学习心得分享下.
存在的问题: 现在的问题表面是游戏所在的磁盘路径, 影响了Java的执行效果 ,其实不同的游戏你又会发现不同的BUG, 比如有的游戏,你会发现Java没有办法模拟键盘输入,有的游戏java无法模拟鼠标动作.有的游戏,Java模拟完全失效. 只有少部分小游戏, Java可以勉强模拟运行.
根本原因是: Java不擅长与系统底层打交道, 毕竟还隔着虚拟机, 就算使用了Java Robot类,进行简单的键盘鼠标模拟, 还是不够稳定.
解决办法 : 当然了还是有解决办法的,比如在Java中可以使用下面的两种方法:
方法一: Robot, 比较初级和粗糙, 功能弱小, 只能前台运行.
方法二:JNI/JNA技术, 调用windows API ,或者调用c语言代码. 可以完成
!!!强烈推荐该方法,可以后台运行, 特别是JNA, 简化了JNI, 用起来很方便
方法三: JACOB 技术, 目前比较成熟的就是大漠插件, java可以使用JACOB技术,来调用他
有些函数, 没有办法完成调用...
其他途径的解决: C# 调用 大漠插件 , 基本完美解决了;
为什么选择C#, 因为和Java语法特别类似, 迁移方便
为什么选择大漠插件, 因为很多的函数 都可以直接调用调用即可, 比如找图,找色,找字,截图, 模拟键鼠操作等.
下面是学习的时候写过的几个小案例
我们学习的目的是为了深入了解Java技术.
Ⅲ 谁知道java的robot鼠标控制
r.mouseMove(50, 50);
r.setAutoDelay(0);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
先移到目标点,然后设置时间,时间为0,意味动作连续。然后按下 释放鼠标。
public void mousePress(int buttons)按下一个或多个鼠标按钮。应该使用 mouseRelease 方法释放鼠标按钮。
参数:
buttons - Button 掩码;一个或多个以下标志的组合:
InputEvent.BUTTON1_MASK
InputEvent.BUTTON2_MASK
InputEvent.BUTTON3_MASK
就个参数就是鼠标的3个键。
你移到那里点击,就是在那里点击的,只要把时间设置很短,外界没办法干扰的。
Ⅳ 怎么写一段java代码,实现一个操作鼠标的功能,当我按下快捷键时,鼠标自动在设定好的屏幕的某个位置单击
楼主,请看 java.awt.Robot 这个类,有你所需要的。
void
mouseMove(int x,
int y)
将鼠标指针移动到给定屏幕坐标。
void
mousePress(int buttons)
按下一个或多个鼠标按钮。
Ⅳ 鼠标如何进行编程
在java.awt.*包下面有一个Robot类,可以生成输入事件,例如,Robot.mouseMove 将移动鼠标光标
这个类除了模拟鼠标键盘操作以外,还可以用来截取屏幕,只演示一下怎么模拟鼠标键盘操作,具体api参考javadoc。这个演示完成了弹出QQ和移动窗口的功能。代码如下:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
/**
* @author bean
*
*/
public class RobotDemo {
private Robot robot = null;
public RobotDemo() {
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
}
/** 可以弹出QQ */
public void keyBoardDemo() {
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
}
/** 前提是有个最大化的窗口,功能是移动到标题栏,然后拖拽到600,600的位置*/
public void mouseDemo(){
robot.mouseMove(80, 10);
robot.mousePress(KeyEvent.BUTTON1_MASK);
try {