java模拟键盘按键

2023-05-16



come from: http://bbs.51cto.com/thread-1097189-1.html


功能描述:

1.打开一个记事本

2.最大化

3.模拟按键操作


现 贴出 源码 :

预览源代码 打印
001import java.awt.AWTException;
002import java.awt.Robot;
003import java.awt.Toolkit;
004import java.awt.datatransfer.Clipboard;
005import java.awt.datatransfer.StringSelection;
006import java.awt.datatransfer.Transferable;
007import java.awt.event.KeyEvent;
008 
009public class Test {
010 
011        /**
012         * @param args
013         * <a href="http://home.51cto.com/index.php?s=/space/2305405" target="_blank">@throws</a> AWTException
014         */
015        public static void main(String[] args) throws Exception {
016                // TODO Auto-generated method stub
017                Robot robot = new Robot(); //创建一个robot对象
018                Runtime.getRuntime().exec("notepad");        //打开一个记事本程序
019                robot.delay(2000);        //等待 2秒
020                //窗口最大化
021                keyPressWithAlt(robot, KeyEvent.VK_SPACE); //按下 alt+ 空格
022                keyPress(robot, KeyEvent.VK_X);  //按下x键
023                robot.delay(1000);  //等待 1秒
024                keyPressString(robot, "大家好,我是一个小机器人,我有很多本领呢 !"); //输入字符串
025                robot.delay(3000);  //等待 3秒
026                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
027                keyPressString(robot, "现在,我就向大家展示一下.....嘻嘻"); //输入字符串
028                robot.delay(3000);  //等待 3秒
029                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
030                keyPressString(robot, "首先,我能按下 键盘的任何一个键。下面,我单独按下a,b,c,d键"); //输入字符串
031                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
032                robot.delay(3000);  //等待 3秒
033                keyPress(robot, KeyEvent.VK_A); //按下 a 键
034                robot.delay(2000);  //等待 2秒
035                keyPress(robot, KeyEvent.VK_B); //按下 b 键
036                robot.delay(2000);  //等待 2秒
037                keyPress(robot, KeyEvent.VK_C); //按下 c 键
038                robot.delay(2000);  //等待 2秒
039                keyPress(robot, KeyEvent.VK_D); //按下 d 键
040                robot.delay(2000);  //等待 2秒
041                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
042                keyPressString(robot, "呵呵,完成了。。。。  ");
043                robot.delay(3000);  //等待 3秒
044                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
045                keyPressString(robot, "恩,对了    上面 文字很多  是不是 感到 很乱呢???     我现在 帮你清空一下 ");
046                robot.delay(2000);  //等待 2秒
047                keyPressWithCtrl(robot,KeyEvent.VK_A); //按下 ctrl+A 全选
048                robot.delay(2000);  //等待 2秒
049                keyPress(robot,KeyEvent.VK_DELETE); //清除
050                robot.delay(3000);  //等待 3秒
051                keyPressString(robot, "恩,现在 是不是 觉得 清爽多了              另外 我还会按 组合键呢 ...");
052                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
053                robot.delay(3000);  //等待 3秒
054                keyPressString(robot, "................好像已经 演示过了 吧 ,呵呵    ");
055                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
056                robot.delay(3000);  //等待 3秒
057                keyPressString(robot, "其实,我还有很多本领呢                           现在就不向大家展示了 .....");
058                keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
059                robot.delay(3000);  //等待 3秒
060                keyPressString(robot, "谢谢大家!!!!!");
061                 
062                 
063 
064        }
065 
066        // shift+ 按键
067        public static void keyPressWithShift(Robot r, int key) {
068                r.keyPress(KeyEvent.VK_SHIFT);
069                r.keyPress(key);
070                r.keyRelease(key);
071                r.keyRelease(KeyEvent.VK_SHIFT);
072                r.delay(100);
073        }
074 
075        // ctrl+ 按键
076        public static void keyPressWithCtrl(Robot r, int key) {
077                r.keyPress(KeyEvent.VK_CONTROL);
078                r.keyPress(key);
079                r.keyRelease(key);
080                r.keyRelease(KeyEvent.VK_CONTROL);
081                r.delay(100);
082        }
083 
084        // alt+ 按键
085        public static void keyPressWithAlt(Robot r, int key) {
086                r.keyPress(KeyEvent.VK_ALT);
087                r.keyPress(key);
088                r.keyRelease(key);
089                r.keyRelease(KeyEvent.VK_ALT);
090                r.delay(100);
091        }
092        //打印出字符串
093        public static void keyPressString(Robot r, String str){
094                Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();//获取剪切板
095                Transferable tText = new StringSelection(str);
096                clip.setContents(tText, null); //设置剪切板内容
097                keyPressWithCtrl(r, KeyEvent.VK_V);//粘贴
098                r.delay(100);
099        }
100         
101        //单个 按键
102        public static void keyPress(Robot r,int key){
103                r.keyPress(key);
104                r.keyRelease(key);
105                r.delay(100);
106        }
107}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java模拟键盘按键 的相关文章

随机推荐

  • 【Kali_014】Kconsole虚拟终端设置半透明

    打开终端菜单 gt Settings gt Edit Current Profile gt Appearance gt Edit gt Background transparency
  • 用fastboot烧录system.img 出现remote: data too large解决办法

    用fastboot命令烧录 xff0c 提示如下错误信息 xff1a target reported max download size of 536870912 bytes erasing 39 system 39 OKAY 0 016s
  • MTK Android为某个APP单独添加selinux配置文件

    需求 MTK Android 11 test是一个system APP 涉及到许多个selinux的权限 xff0c 不想影响所有的system APP的权限 xff0c 需要单独为test设定selinux 方法 domain devic
  • 2012年展望

    由于各种原因 xff0c 客观的 主观的 不过归根结底还是主观的多一些 xff0c 2011年整体过的很颓废 xff0c 上班大多在上网 xff0c 工作上几乎没有一点成绩 xff0c 自己也是很不满意 2012年世界末日都快来了 xff0
  • http和ftp协议的区别

    项目中应用到ftp xff0c 将ftp的笔记上传一下 简单的说 xff1a HTTP是超文本传输协议 xff1b 面向网页的 FTP是File Transfer Protocol 文件传输协议 xff1b 面向文件的 1 FTP 1 FT
  • Python爬虫(4)获得所有Top250部电影的信息并存入数据库

    上次我们完成了单页电影的获取并保存到了Excel文件中 xff0c 不知道小伙伴们都完成了没 xff1f 有没有把Top250部电影都保存下来的 xff1f 在编写这些代码过程中遇到什么问题了没 xff1f 如果遇到但是没有解决 xff0c
  • c#笔记-模式匹配

    模式匹配 模式匹配可以判断一个值的类型和内容 可以判断嵌套的属性 xff0c 但只能和常量进行比较 模式匹配使用is表达式 xff0c 或是在switch选择 xff0c 和switch表达式的分支块中启用 模式匹配使用专有的关键字或运算符
  • typeScript+egg.js+node.js后台项目搭建(一)

    typeScript egg js node js后台项目搭建 一 1 安装node js 地址 https nodejs org en 下载安装后 打开控制台cmd 输入 node v 在安装ts 可以参考typeScript中文官网 n
  • CGroup 介绍、应用实例及原理描述(已发表于IBM开发者论坛)

    插播小广告 xff0c 本人的 大话 Java性能优化 一书已经在亚马逊 京东 当当 天猫出售 xff0c 提前谢谢大家支持 原文请查看 xff1a http www ibm com developerworks cn linux 1506
  • python + celery简例

    在网上找了半天 xff0c 也没找到完整的例子 xff0c 自己写吧 1 一个队列 自定义10个优先级 xff0c 修改默认celery队列名称 1 testcelery py from celery import Celery impor
  • java+selenium获取动态下拉列表元素

    做自动化的时候 xff0c 遇到这么一个闹心问题 xff1a 研发用html里的 lt div input gt 方式 xff0c 所以无法使用select获取列表元素 原本使用Robot也可以定位 xff0c 但是headless模式 x
  • Redis安装和配置

    网上有海量的Redis文章 xff0c 写的都很详细 这里就是简单记录一下自己查aof问题过程中遇到的问题 xff0c 主要是aof文件所在目录在redis conf里的位置 1 在ubuntu16上安装Redis sudo apt get
  • mysql 主从部署

    在ubuntu 16上 xff0c 配置mysql 主从服务器 查看mysql主从命令 show variables like 39 server id 39 show variables like 39 log bin 39 show m
  • 编写的windows程序,崩溃时产生crash dump文件的办法 .

    一 引言 dump文件是C 43 43 程序发生异常时 xff0c 保存当时程序运行状态的文件 xff0c 是调试异常程序重要的方法 xff0c 所以程序崩溃时 xff0c 除了日志文件 xff0c dump文件便成了我们查找错误的最后一根
  • 网络性能测试工具iperf详细使用图文教程

    Iperf是一个网络性能测试工具 Iperf可以测试TCP和UDP带宽质量 Iperf可以测量最大TCP带宽 xff0c 具有多种参数和UDP特性 Iperf可以报告带宽 xff0c 延迟抖动和数据包丢失 利用Iperf这一特性 xff0c
  • 使用Klockwork进行代码分析简单操作流程

    前一段时间公司试用了一下klockwork公司的klockwork代码静态分析软件 xff0c 我所在项目组进行了试点 xff0c 试用后感觉不错 xff0c 有几大亮点 xff1a 1 xff09 对代码进行静态分析 xff0c 无需改动
  • C++特性:多态、重写

    说一下多态 多态就是不同的继承类对象 xff0c 针对同一消息做出不同的响应 xff0c 父类的指针指向或者绑定到子类的对象 xff0c 使得父类指针呈现多种不同的表现方式 要实现多态 xff0c 首先父类需要有一个virtual修饰的虚方
  • Jmeter(三)-简单的HTTP请求(参数化)

    xfeff xfeff 首先建立一个线程组 xff08 Thread Group xff09 xff0c 为什么所有的请求都要加入线程组这个组件呢 xff1f 不加不行吗 xff1f 答案当然是不行的 因为jmeter的所有任务都必须由线程
  • no suitable driver found for jdbc:mysql//localhost:3306/..

    xfeff xfeff 出现这样的情况 xff0c 一般有四种原因 xff1a 一 xff1a 连接URL格式出现了问题 Connection conn 61 DriverManager getConnection 34 jdbc mysq
  • java模拟键盘按键

    xfeff xfeff come from http bbs 51cto com thread 1097189 1 html 功能描述 1 打开一个记事本 2 最大化 3 模拟按键操作 现 贴出 源码 xff1a 预览源代码 打印 001i