如何使用java操作软件程序? 例如,我想操作VyprVPN来断开&重新连接交换机服务器等。
我知道你可以定位鼠标并点击机器人类,但我需要一些更具体的东西,比如能够识别按钮并给它们提供不同的id或类似的东西。
这可能吗?
答案 0 :(得分:1)
可以使用Reflection或Byte Code Engineering Library (BCEL)来完成,但我不确定后者的开发和支持有多活跃。
两者都需要很好的逆向工程知识,如果目标程序也是用Java编写的话,它只能 。
否则,实际上没有比捕获屏幕和使用图像处理识别某些元素更好的解决方案,然后确定如果找到给定按钮或其他元素,您应该采取什么操作。
请记住,这不是一个简单的编程任务。有些程序可以帮助您记录甚至提供简单的编程接口来定义您自己的宏,但该接口通常非常有限。而且,这些程序并不便宜。
在我看来,如果你真的想使用Java,最好的解决方案是拥有固定的窗口大小并找到按钮或其他UI控件的相应坐标,然后使用Robot API单击这些操作。你可以通过找到窗口句柄的位置并根据窗口位置标准化鼠标坐标来使它更容易点击。