【java办公自动化(5)】-- springboot2.x模拟打开QQ.exe

【java办公自动化(5)】-- springboot2.x模拟打开QQ.exe

需求前言

听说一位同事早上上班,坐下来就打开电脑,打开数据库,打开微信,打开钉钉,打开邮箱,打开服务器,打开IJ,打开word文档,打开Nginx,打开淘宝,打开Redis,打开Ps,打开。。。用时半小时,冲了杯咖啡。。。每天重复这种打开操作,当然你可以不关机或者待机。JAVA中的Robot可以帮你完成这种操作。
这里只教简单的基本操作,登录QQ号,你说QQ不是有自动登录吗,这个只是演示,没必要较真。不会教你游戏自动挂机,咱也不会做,咱也不敢做,反正很牛逼。

自动化给我们带来价值有:

  • 机器处理:通过用户界面(UI)或者脚本语言(Script)实现借由机器人的重复人工任务的自动化处理;

  • 基于明确的规则操作:流程必须有明确的、可被数字化的触发指令和输入,流程不得出现无法提前定义的例外情况;

  • 以外挂的形式部署在客户现有系统上:基于规则在用户界面进行自动化操作,非侵入式模式不影响原有IT基础架构;

  • 模拟用户手工操作及交互:机器人可以执行用户的日常基本操作,例如:鼠标点击、键盘输入、复制/粘贴等一系列日常电脑操作。

自动化和AI其实是天壤之别,现在的机器人还只是逻辑编程比较完善能够执行一定预制判断逻辑的的机器,还远谈不上人工智能,列如春晚上机器人自动写春联,这个春联是早已把逻辑编上去的,如果让它写下你自己的新年愿望,它就成了人工智障————短路了。但没关系,我们可以手动智能。

效果展示

在这里插入图片描述

代码展示

@Test
public void test() throws AWTException{
//获取机器人类
Robot robot = new Robot();
//获取当前屏幕
Point point = MouseInfo.getPointerInfo().getLocation();
double x = point.getX();//当前鼠标放下x轴
double y = point.getY();//当前鼠标放下y轴
//设置鼠标在屏幕的位置
robot.mouseMove(33,44);
// 模拟鼠标按下左键
robot.mousePress(InputEvent.BUTTON1_MASK);
// 模拟鼠标松开左键
robot.mouseRelease(InputEvent.BUTTON1_MASK);
// 模拟鼠标按下右键
/*robot.mousePress(InputEvent.BUTTON3_MASK);
// 模拟鼠标松开右键
robot.mouseRelease(InputEvent.BUTTON3_MASK);*/
//模拟按下Win键
robot.keyPress(524);
//模拟松开Win键
robot.keyRelease(524);
}

Process p = Runtime.getRuntime().exec("C:\\software\\QQ\\Bin\\QQScLauncher.exe");
            p.waitFor();

            // 休息5秒钟
            Thread.currentThread().sleep(5000);

            Robot robot = new Robot();
            //设置Robot产生一个动作后的休眠时间,否则执行过快
            robot.setAutoDelay(1000);
            int start_x = 1;
            int start_y = 1;
            int end_x = 1080;
            int end_y = 840;
            for(int i = 0; i <5; i ++){
                int x =((end_x * i)/ 5)+(start_x *(100-i)/ 5);
                int y =((end_y * i)/ 5)+(start_y *(100-i)/ 5);
                robot.mouseMove(x, y);
            }

            //移动鼠标
//            robot.mouseMove(860, 540); //960 700
            // 点击鼠标左键
            System.out.println("单击");
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
SpringApplicationBuilder builder = new SpringApplicationBuilder(CodeApplication.class);
		builder.headless(false).run(args);

难点分析

  • headless的bug:在开发时,使用Springboot2.X会报错,需要在启动时候设置headless
  • 移动鼠标
    程序启动,鼠标初始的位置不是鼠标原来的位置,为了方便查看鼠标移动,使用了for循环,循环鼠标移动的位置,但是移动得很不自然。
  • Process :使用这个类,可以做很多操作。

扩展需求

  • 1、可以截图,然后图像分析
基于Intranet/Internet 的Web下的办公自动化系统,采用了当今最先进的PHP技术,是综合大量用户的需求,经过充分的用户论证的基础上开发出来的,独特的即时信息、短信、电子邮件系统、完善的工作流、数据库安全备份等功能使得信息在企业内部传递效率极大提高,信息传递过程耗费降到最低。办公人员得以从繁杂的日常办公事务处理解放出来,参与更多的富于思考性和创造性的工作。系统力求突出体系结构简明、功能实用、管理和维护简单易行的特点 功能模块--功能描述列表: 桌面查询系统 ●提供权限范围内信息的发布,查询公共信息功能 ●提供电子邮件收发功能(包括内部邮件、外部邮件) ●提供短信息发布与查询功能 ●提供公告通知查询功能 ●提供个人考勤纪录查询功能 ●提供日程安排纪录查询功能 ●提供个人工作日志纪录功能 ●提供通讯薄功能 ●提供个人文件柜设置功能 ●提供个人资料设置以及在线同事提示功能 公共事务系统 ●提供电子签章工作流程的定制与实施 ●提供工作流程的定制与实施 ●提供公告通知管理功能 ●提供考勤管理等功能 ●提供员工日程安排查询 ●提供员工工作日志查询 ●提供专利论文查询及管理模块 ●提供工作计划查询及管理 ●提供设备查询及管理模块 ●提供生产管理查询及管理模块 ●提供人事档案的管理与查询 ●提供工资上报的管理与录入 ●提供图书管理与查询 ●提供会议申请、安排、查询、记录等 ●车辆的使用、维护、申请、以及车辆信息管理 ●组织机构信息查询、管理 内部交流系统 ●提供公共讨论区 ●网络会议 ●公共文件柜(树状权限设置,不同权限的用户可以访问不同的文件) ●网络硬盘功能 考勤模块 ●提供上下班、请假、出差、记录 销售管理系统 ●客户关系管理系统 ●产品销售管理系统 ●供应商管理系统 系统设置模块 ●提供组织机构设置管理与权限分配 ●公共事务的考勤与工作流设置 ●交流设置的文件柜、文本聊天、网络硬盘设置 ●电子公文设置 ●系统访问控制 ●系统数据库管理 ●系统资源管理 ●电子签章控件下载 办公助手模块 ●提供各种信息查询、手机所在地查询、邮政编码、电话区号、万年历、北京时间、法律法规、常用电话、 天气预报(需要Internet支持)、旅游气象(需要Internet支持)、动态列车时刻表(需要Internet支持)等 .功能模块--功能描述列表 桌面查询系统 ●提供权限范围内信息的发布,查询公共信息功能 ●提供电子邮件收发功能(包括内部邮件、外部邮件) ●提供短信息发布与查询功能 ●提供公告通知查询功能 ●提供个人考勤纪录查询功能 ●提供日程安排纪录查询功能 ●提供个人工作日志纪录功能 ●提供通讯薄功能 ●提供个人文件柜设置功能 ●提供个人资料设置以及在线同事提示功能 公共事务系统 ●提供电子签章工作流程的定制与实施 ●提供工作流程的定制与实施 ●提供公告通知管理功能 ●提供考勤管理等功能 ●提供员工日程安排查询 ●提供员工工作日志查询 ●提供专利论文查询及管理模块 ●提供工作计划查询及管理 ●提供设备查询及管理模块 ●提供生产管理查询及管理模块 ●提供人事档案的管理与查询 ●提供工资上报的管理与录入 ●提供图书管理与查询 ●提供会议申请、安排、查询、记录等 ●车辆的使用、维护、申请、以及车辆信息管理 ●组织机构信息查询、管理 内部交流系统 ●提供公共讨论区 ●网络会议 ●公共文件柜(树状权限设置,不同权限的用户可以访问不同的文件) ●网络硬盘功能 考勤模块 ●提供上下班、请假、出差、记录 销售管理系统 ●客户关系管理系统 ●产品销售管理系统 ●供应商管理系统 系统设置模块 ●提供组织机构设置管理与权限分配 ●公共事务的考勤与工作流设置 ●交流设置的文件柜、文本聊天、网络硬盘设置 ●电子公文设置 ●系统访问控制 ●系统数据库管理 ●系统资源管理 ●电子签章控件下载 办公助手模块 ●提供各种信息查询、手机所在地查询、邮政编码、电话区号、万年历、北京时间、法律法规、常用电话、 天气预报(需要Internet支持)、旅游气象(需要Internet支持)、动态列车时刻表(需要Internet支持)等 .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值