Java实现智能机器自动操作电脑

 1 package com.tz.util;
 2
 3 import java.awt.Robot;
 4 import java.awt.event.InputEvent;
 5 import java.awt.event.KeyEvent;
 6
 7 /**
 8 * @author sunshine
 9 * @version 1.0
10 * @date:2015年8月16日 下午1:29:39
11 * @description: Robot实现自动化
12 *     整体功能实现自动点击电脑开始按钮、点击运行、
13 *     输入CMD命令进入dos命令窗口、查看当前目录dir、
14 *     查看本机ip信息、退出exit
15 */
16 public class RobotCmd {
17
18     public static void main(String[] args) {
19         try {
20             //实例化机器人
21             Robot robot = new Robot();
22
23             //先移动到开始菜单的位置
24             robot.mouseMove(24, 880);
25
26             robot.mousePress(InputEvent.BUTTON1_MASK);
27             robot.mouseRelease(InputEvent.BUTTON1_MASK);
28             robot.delay(500);
29
30             //移动到运行菜单的位置,并且点击
31             robot.mouseMove(245, 666);
32             robot.mousePress(InputEvent.BUTTON1_MASK);
33             robot.mouseRelease(InputEvent.BUTTON1_MASK);
34             robot.delay(500);
35
36             //robot按下CMD键
37             robot.keyPress(KeyEvent.VK_C);
38             robot.keyPress(KeyEvent.VK_M);
39             robot.keyPress(KeyEvent.VK_D);
40             robot.delay(500);
41
42             //点击确定,进入CMD控制台
43             robot.mouseMove(145, 745);
44             robot.mousePress(InputEvent.BUTTON1_MASK);
45             robot.mouseRelease(InputEvent.BUTTON1_MASK);
46             robot.delay(500);
47
48             //输入dir命令
49             int[] keyDir = {KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};
50             KeyUtil.pressKeys(robot, keyDir, 500);
51
52             //输入ipconfig命令
53             int[] keyIpconfig = {KeyEvent.VK_I,KeyEvent.VK_P,KeyEvent.VK_C,KeyEvent.VK_O,KeyEvent.VK_N,KeyEvent.VK_F,KeyEvent.VK_I,KeyEvent.VK_G,KeyEvent.VK_ENTER};
54             KeyUtil.pressKeys(robot, keyIpconfig, 500);
55
56             //输入exit命令
57             int[] keyExit = {KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};
58             KeyUtil.pressKeys(robot, keyExit, 500);
59
60
61
62         } catch (Exception e) {
63             e.printStackTrace();
64         }
65     }
66 }
 1 package com.tz.util;
 2
 3 import java.awt.Robot;
 4
 5 /**
 6 * @author sunshine
 7 * @version 1.0
 8 * @date:2015年8月16日 下午2:05:23
 9 * @description: 键盘事件操作工具类
10 */
11 public class KeyUtil {
12
13     /**
14      * 键盘输入方法
15      *
16      * @param robot  机器人类
17      * @param keys  输入键盘键名
18      * @param delay  延迟时间
19      * @return void 无
20      *
21      */
22     public static void pressKeys(Robot robot,int[] keys,int delay){
23
24         //循环遍历数组并赋值
25         for(int i=0;i<keys.length;i++){
26             robot.keyPress(keys[i]);
27             robot.keyRelease(keys[i]);
28             robot.delay(delay);
29         }
30     }
31 }
时间: 2024-08-09 06:32:21

Java实现智能机器自动操作电脑的相关文章

Excel文档间的数据替换 ---电脑版APP 自动操作魔法师

http://www.won-soft.com/macro/solution/excel-data-replace.htm 介绍: 在我们的日常工作中, 可能经常需要使用同各种数据表格打交道.比如财务工作中各种数据表格, 生产管理上的各种生产数据统计表,以前人力资源部的工资表等等.在处理这些数据的过程中, 我们可能经常会遇到要做一张表,但这张表的数据需要从另一张表上取,每个数据间有一些相关联的规则,举例来说: 年底一般都会做工资统计表,列出所有员工的全年的各种奖金总计.全年应发工资.实发工资.扣

java 线程 原子类相关操作示例 thinking in java4 目录21.3.4

java 线程  原子类相关操作示例 package org.rui.thread.volatiles; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; /** * 原子类,

Java API —— IO流(数据操作流 &amp; 内存操作流 &amp; 打印流 &amp; 标准输入输出流 &amp; 随机访问流 &amp; 合并流 &amp; 序列化流 &amp; Properties &amp; NIO)

1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出流写入稍后由数据输入流读取的数据. · DataOutputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中.然后,应用程序可以使用数据输入流将数据读入. package datastreamdemos; import java.io.*; /** * Created b

读Hadoop3.2源码,深入了解java调用HDFS的常用操作和HDFS原理

本文将通过一个演示工程来快速上手java调用HDFS的常见操作.接下来以创建文件为例,通过阅读HDFS的源码,一步步展开HDFS相关原理.理论知识的说明. 说明:本文档基于最新版本Hadoop3.2.1 目录 一.java调用HDFS的常见操作 1.1.演示环境搭建 1.2.操作HDFS 1.3.java文件操作常用方法 二.深入了解HDFS写文件的流程和HDFS原理 2.1.Hadoop3.2.1 源码下载及介绍 2.2.文件系统:FileSystem 2.3.HDFS体系结构:namenod

C# 系统应用之鼠标模拟技术及自动操作鼠标

游戏程序的操作不外乎两种--键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合FindWindow和FindWindowEx寻找到窗体的按钮,在通过SetCursorPos或mouse_event函数操作鼠标,同时涉及到通过spy++工具获取窗体消息的信息. 一. Windows API函数介绍 .NET没有提供改变鼠标指针位置.模拟单机操作的函数,但是可以通过调用Windows

java实现的MySQL自动备份和还原(struts2+Hibernate)---兼容 window+Linux

相信很多朋友都经历过数据库出问题的情况,我也同样(见我的上一篇博文:phpmyadmin误删表后的恢复过程(心惊胆跳啊)   ).如果数据很大或者很重要,那么恢复起来是相当困难的,所以我们在做一个相对完善的系统时,数据库的备份/还原功能是必不可少的.本文将在javaEE环境下实现MySQL的自动备份/还原,使用了struts2和hibernate框架,MySQL版本是5.1.16. 下图展示的是web application的执行流程, Timer是在一个随着application启动而启动的s

java 线程 原子类相关操作演示样例 thinking in java4 文件夹21.3.4

java 线程  原子类相关操作演示样例 package org.rui.thread.volatiles; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; /** * 原子类

Java进阶之 如何自动生成代码

一.前言:为什么要有代码的自动生成? 对于这个问题 最简洁直接的回答就是:代替手动编写代码.提高工作效率. 什么样的场景和代码适合用自动生成这种方式呢? 做过Java服务端的朋友一定都知道代码中我们需要编写与数据库表映射的Java实体类(Entity).需要编写与实体对应的DAO类(XxDao.java类中有包含对应实体的增.删.改.查基本操作).在这些实体类中通常都是一些属性方法以及属性对应的get/set方法.而实体对应的DAO类中也基本会包含有增.删.改.查这些与数据库操作相关的方法.在编

[转]C# 系统应用之鼠标模拟技术及自动操作鼠标

原文网址: C# 系统应用之鼠标模拟技术及自动操作鼠标        游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合FindWindow和FindWindowEx寻找到窗体的按钮,在通过SetCursorPos或mouse_event函数操作鼠标,同时涉及到通过spy++工具获取窗体消息的信息. 一. Windows API函数介绍 .NET没有提