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

时间:2022-11-20 09:26:12
我想做一个类似辅助性外挂的东西,挺简单,就是用鼠标点击游戏窗口的3个点,每5分钟点击3个点各一次。请教用Java怎么做?能给些源代码最好了。

13 个解决方案

#1


鼠标连点器啊,没做过。

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

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

#2


java做补了这个,只能用c、c++之类的来做。

还有就是如果你只是需要做这么简单的功能,何必要自己做呢,用按键精灵很好啊。不过现在很多游戏都控制了这种外挂的,所以不一定能够有用。

#3


谢谢回复。我就是自己用。鼠标位置是固定的,不须考虑如何找坐标的问题。

引用 1 楼 dr_lou 的回复:
鼠标连点器啊,没做过。

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

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

#4


这样说的应该是自动点击的吧?

---
我想到的是每5分钟直接使用脚本运行程序进行。如果不是自动的,需要手动点击,那就无所谓去定位了,直接事件响应

#5


点击按钮无非是为了响应事件,五分钟点击一次不就是五分钟执行一下按钮事件里边的代码吗?如果没有差别,执行按钮的响应事件更加简单

#6


建立一个线程 每sleep300000线程启动一次 每次启动对三个坐标响应一次事件

#7


引用 3 楼 sdyqingdao 的回复:
谢谢回复。我就是自己用。鼠标位置是固定的,不须考虑如何找坐标的问题。


引用 1 楼 dr_lou 的回复:

鼠标连点器啊,没做过。

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

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


你怎么固定?分辨率不同的你也能固定么?
如果定位不是问题,就实现鼠标事件即可。

#8


我刚学JAVA,帮你顶,学习交流,接个小分

#9


java写个小机器人....,插上电,放鼠标旁边,每3分钟去点下鼠标左键  囧

期待高手实现

#10


假设需每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();
}

#11


难道不是很容易的事情吗?而且这东西用MFC做,更简单。

#12


dsddfs

#13


上边的代码不能运行

#1


鼠标连点器啊,没做过。

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

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

#2


java做补了这个,只能用c、c++之类的来做。

还有就是如果你只是需要做这么简单的功能,何必要自己做呢,用按键精灵很好啊。不过现在很多游戏都控制了这种外挂的,所以不一定能够有用。

#3


谢谢回复。我就是自己用。鼠标位置是固定的,不须考虑如何找坐标的问题。

引用 1 楼 dr_lou 的回复:
鼠标连点器啊,没做过。

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

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

#4


这样说的应该是自动点击的吧?

---
我想到的是每5分钟直接使用脚本运行程序进行。如果不是自动的,需要手动点击,那就无所谓去定位了,直接事件响应

#5


点击按钮无非是为了响应事件,五分钟点击一次不就是五分钟执行一下按钮事件里边的代码吗?如果没有差别,执行按钮的响应事件更加简单

#6


建立一个线程 每sleep300000线程启动一次 每次启动对三个坐标响应一次事件

#7


引用 3 楼 sdyqingdao 的回复:
谢谢回复。我就是自己用。鼠标位置是固定的,不须考虑如何找坐标的问题。


引用 1 楼 dr_lou 的回复:

鼠标连点器啊,没做过。

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

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


你怎么固定?分辨率不同的你也能固定么?
如果定位不是问题,就实现鼠标事件即可。

#8


我刚学JAVA,帮你顶,学习交流,接个小分

#9


java写个小机器人....,插上电,放鼠标旁边,每3分钟去点下鼠标左键  囧

期待高手实现

#10


假设需每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();
}

#11


难道不是很容易的事情吗?而且这东西用MFC做,更简单。

#12


dsddfs

#13


上边的代码不能运行