让鼠标点击某个程序窗口的特定位置

sdyqingdao 2010-06-17 09:26:24
我想做一个类似辅助性外挂的东西,挺简单,就是用鼠标点击游戏窗口的3个点,每5分钟点击3个点各一次。请教用Java怎么做?能给些源代码最好了。
...全文
789 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yangyun2621 2011-09-14
上边的代码不能运行
  • 打赏
  • 举报
回复
yangyun2621 2011-09-14
dsddfs
  • 打赏
  • 举报
回复
lacus87 2010-06-17
java写个小机器人....,插上电,放鼠标旁边,每3分钟去点下鼠标左键 囧

期待高手实现
  • 打赏
  • 举报
回复
lcmlhs_2005 2010-06-17
我刚学JAVA,帮你顶,学习交流,接个小分
  • 打赏
  • 举报
回复
dr_lou 2010-06-17
[Quote=引用 3 楼 sdyqingdao 的回复:]
谢谢回复。我就是自己用。鼠标位置是固定的,不须考虑如何找坐标的问题。


引用 1 楼 dr_lou 的回复:

鼠标连点器啊,没做过。

我觉得难点在定位上,考虑用户分辨率得。至于点击和计时都是小问题。

三个点对于界面的相对位置是确定的,你只要做好屏幕分辨率与相对点坐标的匹配就可以了吧。
[/Quote]

你怎么固定?分辨率不同的你也能固定么?
如果定位不是问题,就实现鼠标事件即可。
  • 打赏
  • 举报
回复
tmhk123 2010-06-17
建立一个线程 每sleep300000线程启动一次 每次启动对三个坐标响应一次事件
  • 打赏
  • 举报
回复
BadPattern 2010-06-17
点击按钮无非是为了响应事件,五分钟点击一次不就是五分钟执行一下按钮事件里边的代码吗?如果没有差别,执行按钮的响应事件更加简单
  • 打赏
  • 举报
回复
这样说的应该是自动点击的吧?

---
我想到的是每5分钟直接使用脚本运行程序进行。如果不是自动的,需要手动点击,那就无所谓去定位了,直接事件响应
  • 打赏
  • 举报
回复
sdyqingdao 2010-06-17
谢谢回复。我就是自己用。鼠标位置是固定的,不须考虑如何找坐标的问题。

[Quote=引用 1 楼 dr_lou 的回复:]

鼠标连点器啊,没做过。

我觉得难点在定位上,考虑用户分辨率得。至于点击和计时都是小问题。

三个点对于界面的相对位置是确定的,你只要做好屏幕分辨率与相对点坐标的匹配就可以了吧。
[/Quote]
  • 打赏
  • 举报
回复
rumlee 2010-06-17
java做补了这个,只能用c、c++之类的来做。

还有就是如果你只是需要做这么简单的功能,何必要自己做呢,用按键精灵很好啊。不过现在很多游戏都控制了这种外挂的,所以不一定能够有用。
  • 打赏
  • 举报
回复
dr_lou 2010-06-17
鼠标连点器啊,没做过。

我觉得难点在定位上,考虑用户分辨率得。至于点击和计时都是小问题。

三个点对于界面的相对位置是确定的,你只要做好屏幕分辨率与相对点坐标的匹配就可以了吧。
  • 打赏
  • 举报
回复
healer_kx 2010-06-17
难道不是很容易的事情吗?而且这东西用MFC做,更简单。
  • 打赏
  • 举报
回复
平淡面对 2010-06-17
假设需每5分钟点击A(350,150),B(350,180),C(350,200)


public static void main(String args) {
try {
Robot r = new Robot();
int waitTime = 5; //minutes
boolean continued = true;

while (continued) {
//A (350, 150)
r.mouseMove(350, 150);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(1000);

//B (350, 180)
r.mouseMove(350, 180);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(1000);

//C 350, 200
r.mouseMove(350, 200);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);

Thread.sleep( waitTime * 60000);
}
} catch (Exception e) {
System.out.println("error :" + e);
e.printStackTrace();
}
  • 打赏
  • 举报
回复
发帖
Java SE

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
帖子事件
创建了帖子
2010-06-17 09:26
社区公告
暂无公告