wordpress做外贸网站的劣势,wordpress 插件路由,客户资源管理系统,龙华网站建设方案书例文目录一.实现功能二.主要思路三.代码实现四.用exe4j生成.exe程序五.最终效果六.代码开源一.实现功能
主线图作战结束到结算页自动点击再次前往
二.主要思路 判断是否进入了结算界面#xff1a;记录结算界面某个像素点的RGB值#xff0c;每隔3秒对这个像素点进行比对 移动鼠标…
目录一.实现功能二.主要思路三.代码实现四.用exe4j生成.exe程序五.最终效果六.代码开源一.实现功能
主线图作战结束到结算页自动点击再次前往
二.主要思路 判断是否进入了结算界面记录结算界面某个像素点的RGB值每隔3秒对这个像素点进行比对 移动鼠标点击再次前往Java提供的Robot类
三.代码实现
MainFrame.java 主要实现系统托盘的图标右键菜单栏菜单项的响应事件
package com.simple.azurlane.view;import com.simple.azurlane.auto.MainLine;import javax.imageio.ImageIO;
import java.awt.*;
import java.io.IOException;
import java.util.Objects;public class MainFrame {public MainFrame() {//系统托盘SystemTray systemTray SystemTray.getSystemTray();//菜单栏PopupMenu pop new PopupMenu();MenuItem control new MenuItem(start);MenuItem exit new MenuItem(exit);pop.add(control);pop.addSeparator();pop.add(exit);control.addActionListener(e - {if (control.getLabel().equals(start)) {MainLine.start();control.setLabel(stop);} else {MainLine.stop();control.setLabel(start);}});exit.addActionListener(e - System.exit(0));try {TrayIcon trayIcon new TrayIcon(ImageIO.read(Objects.requireNonNull(MainFrame.class.getClassLoader().getResourceAsStream(azurlane.jpg))), 碧蓝航线, pop);trayIcon.setImageAutoSize(true);trayIcon.setToolTip(碧蓝航线);systemTray.add(trayIcon);} catch (IOException | AWTException e) {e.printStackTrace();}}public static void main(String[] args) {new MainFrame();}
}MainLine.java 主要实现像素点的比对自动移动鼠标点击
package com.simple.azurlane.auto;import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class MainLine {private static ScheduledExecutorService scheduledService;private static final Properties properties new Properties();private static Robot robot;static {try {robot new Robot();properties.load(MainLine.class.getClassLoader().getResourceAsStream(config.properties));} catch (AWTException | IOException e) {e.printStackTrace();}}static int z Integer.parseInt(properties.getProperty(z));static int x1 Integer.parseInt(properties.getProperty(x1));static int y1 Integer.parseInt(properties.getProperty(y1));static int x2 Integer.parseInt(properties.getProperty(x2)) / z;static int y2 Integer.parseInt(properties.getProperty(y2)) / z;static ListString rl Arrays.asList(properties.getProperty(r).split(,));static ListString gl Arrays.asList(properties.getProperty(g).split(,));static ListString bl Arrays.asList(properties.getProperty(b).split(,));private static void autoWork() {Color pixelColor robot.getPixelColor(x1, y1);if (validatePixelColor(rl, gl, bl, pixelColor)) {robot.mouseMove(x2, y2);robot.mousePress(KeyEvent.BUTTON1_MASK);robot.delay(200);robot.mouseRelease(KeyEvent.BUTTON1_MASK);robot.delay(200);robot.mouseMove(0, 0);}}/*** 校验一组颜色是否与之指定像素点颜色匹配* param pixelColor 像素点颜色* return true/false*/private static boolean validatePixelColor(ListString rl, ListString gl, ListString bl, Color pixelColor) {for (int i 0; i rl.size(); i) {if (String.valueOf(pixelColor.getRed()).equals(rl.get(i)) String.valueOf(pixelColor.getGreen()).equals(gl.get(i)) String.valueOf(pixelColor.getBlue()).equals(bl.get(i))) {return true;}}return false;}public static void start() {scheduledService Executors.newScheduledThreadPool(1);scheduledService.scheduleAtFixedRate(MainLine::autoWork, 0, 3, TimeUnit.SECONDS);}public static void stop() {scheduledService.shutdownNow();scheduledService null;System.gc();}
}config.properties
#识别的像素点位置
x11600
y1276
#鼠标点击位置
x21740
y21294
#匹配的rgb颜色
r99,90,90
g130,134,121
b189,198,198
#分辨率-缩放比例
z2四.用exe4j生成.exe程序
具体参考我的这篇文章exe4j将jar包打成exe程序
五.最终效果 六.代码开源
所有代码已上传我的github仓库