永发信息网

java可以不可以像按键精灵一样,将一个程序的窗口移动到指定屏幕的坐标?如果可以,求关键代码。

答案:2  悬赏:70  手机版
解决时间 2021-03-08 23:04
  • 提问者网友:佞臣
  • 2021-03-08 15:32
游戏点得累,脚本大师取色判断用不好,想试试java
最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-03-08 15:52
这个的话,我只能提供一条路子,请查看Java的API,有一个类叫做Robot,其中是这样介绍的:
public class Robot

extends Object

此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT
组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove
将实际移动鼠标光标,而不是只生成鼠标移动事件。
注意,某些平台需要特定权限或扩展来访问低级输入控件。如果当前平台配置不允许使用输入控件,那么试图构造 Robot 对象时将抛出
AWTException。例如,如果 X 服务器不支持(或没有启用)XTEST 2.2 标准扩展,则 X-Window
系统会抛出异常。
出于自测试之外的目的而使用 Robot 的应用程序应妥善处理这些错误条件。

从以下版本开始:
全部回答
  • 1楼网友:一叶十三刺
  • 2021-03-08 16:20
原理如下: 前言:dnf有较强保护,找图找色应尽量使用屏幕方式,不要使用游戏窗口句柄的方式! 把窗口进行调整是启动坐标定位的作用,这种方式一般是用于用屏幕坐标来控制流程而做的初始化工作... 流程方法大致如下: 1:屏幕找色,找到游戏窗口边框的指定特征! 2:然后控制鼠标移动到特征上,可以加以一些坐标偏差 3:鼠标按下,移动,弹起,这个是移动窗口的动作 4:移动鼠标的距离,需要经过自己特征坐标而定,下面给个计算概念: 假设 特征坐标 x=400;y=205; 窗口的边框属性: 左=350;顶=200;高=600;宽=600; 现在控制要求是把窗口的 左=0;顶=0; 那么则如下处理 鼠标在400.205处左键按下,然后移动x=400-350;y=200-(205-200); 然后弹起左键! 这样,窗口就被移动到左上角了,当然,调整窗口还是有很多方法的! 但是,你说dnf打不开窗口句柄,就只能完全通过模拟鼠标拖动窗口边框的方式来改变窗口的位置了 仔细看看吧,没有忽悠你的!祝你尽快搞定!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯