java.awt.Robot类

Java提供java.awt.Robot类来模拟操作键盘和鼠标, 下面是一个简单的demo

public static void keyPressByInt(Robot r,int key, int time){

r.keyPress(key);

r.keyRelease(key);

if (time > 0) {

r.delay(time);

}

}

public static void main(String[] args) throws AWTException, CharacterCodingException {

Robot robot = new Robot();

keyPressByInt(robot, KeyEvent.VK_H, 5);

keyPressByInt(robot, KeyEvent.VK_E, 5);

keyPressByInt(robot, KeyEvent.VK_L, 5);

keyPressByInt(robot, KeyEvent.VK_L, 5);

keyPressByInt(robot, KeyEvent.VK_O, 5);

}

执行以上逻辑就会输出字符串 hello, 当然Robot功能不止这些, 示例极其简单, 因为该篇文章目的不是为了说 java.awt.Robot 类的使用

使用Alt码输出汉字

尝试 Alt + 数字 输出汉字

Alt码(Alt code)即在IBM兼容个人电脑上,许多字符没有直接对应的按键,此时就可通过Alt-数字键盘输入法(Alt码)输入,方法是按住Alt键再通过数字键区输入字符代码。DOS、Microsoft Windows等许多操作系统也有类似或增强的功能。

启动你的 windows, 打开 记事本, 之后按住 Alt 不放, 同时依次点击 数字键盘 中的 1、2、3、4、5、6, 再松开 Alt, 看下能不能打印出汉字 釦 来.

注意事项:

Alt + 数字 是 windows 中的方法, 不知道其它系统支不支持, 有兴趣的话可以试一下.

最好是记事本, 当然也可以是其它简单的编辑器, 甚至任何能够输出字符的文本框, 但是不能是vscode等集成编译器, 因为这些编译器, 会将 Alt + 数字 映射成其它功能, 例如在vscode中, alt + ? 是光标移至尾行, alt + 4 是切换到左边的标签页.

一定要是 数字键盘 上面的 数字按键, 别搞错了.

如果记事本上成功输出了 釦 说明你的电脑是支持 Alt + 数字 形式的输入方法的.

Alt 后面数字代表的意思

首先先说明我们中国大多数电脑默认编码都是GBK, 底层区位码使用的大多都是《国家标准信息交换用的字符编码GB2312-80》(以下简称国标区位码).

注意: 网上很多文章说 Alt+【Unicode编码】对应的十进制数字即可打出该【Unicode编码】对应的字符, 事实上这个是机内码, 不是 Unicode编码

Alt 后面的数字如果在(0-255), 则输出的是数字对应的 ASCII 代码表中对应的字符.

Alt 后面的数字如果大于(255), 则查询的是国标区位码里的字符了,包括我们常用的个汉字也在里面.

如果 Alt 后面的数字 >= 65536, 则会先将数字除以65536, 得到余数, 打印出余数数字对应的国标区位码中的字符.

Alt + 123456 输出汉字 釦 的执行过程:

将 123456 转为16进制 1E240, 取后四位E240到国标区位码中查到汉字 釦输出.

用人话来说就是, 首先因为 123456 >= 65536, 那么对 123456➗65536=1……57920, 取得 57920 后到国标区位码中查到汉字 釦输出.

alt + 188992(2E240H), alt + 57920(E240H), 同样能输出汉字釦

使用java获取一个符号的区位码

java 中的字符默认是Unicode标准中utf-16编码, 标准的utf-16占用二或四个字节, java中的一个char占2个字节, 因此java中一个utf-16字占1或2个char, (例如大多数汉字, 字符都是一个char, 像

java robot键值_Java:使用Robot类模拟键盘, 以Alt码方式输出汉字相关推荐

  1. Java:使用Robot类模拟键盘, 以Alt码方式输出汉字

    Java:使用Robot类模拟键盘, 以Alt码方式输出汉字 文章目录 Java:使用Robot类模拟键盘, 以Alt码方式输出汉字 java.awt.Robot类 使用Alt码输出汉字 尝试 `Al ...

  2. java list键值_java基础之对List,Map,Set等集合键值对的简单认识

    [一.集合] 特征: 数组:定长.可以放基本数据类型. List:变长.只能放对象.有序,可重复. Set :变长.只能放对象.无序,不可重复. Map :变长.只能放对象.无序,键值对. 重要实现类 ...

  3. Java心得--键值、枚举器

    1. 集(Set):和数学上的"集合"概念相对应,是最简单的一种集合. Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序. Set集合中不包含重复元素,即任意的两个元素e ...

  4. java Robot 类模拟键盘按键和鼠标点击(全局模拟)

    Robot类用于为测试自动化.自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件.Robot 的主要目的是便于 Java 平台实现自动测试. 使用该类生成输入事件与将事件发送到 AW ...

  5. java拥有键值对的数据结构_Java数据结构之004--HashMap

    数组和链表都是存储一个对象,HashMap 存储数据是以 一对数据来存储,即键值对[key(对象)---->value(对象)]. JDK1.8版本之前,HashMap的实现: 数组 + 链表: ...

  6. java list取值_Java集合详解

    一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...

  7. 红黑树 键值_Java集合框架:红黑树概念、插入及旋转操作详细解读就问你会不会...

    初识TreeMap 之前的文章讲解了两种Map,分别是HashMap与LinkedHashMap,它们保证了以O(1)的时间复杂度进行增.删.改.查,从存储角度考虑,这两种数据结构是非常优秀的.另外, ...

  8. Java Map 键值对排序 按key排序和按Value排序

    一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...

  9. java反射随意值_Java反射笔记

    Java反射 反射库提供了一个丰富且精巧的工具集,可以用来编写能够动态操纵Java代码的程序.能够分析类能力的程序称为反射(reflective).反射机制的功能极为强大,反射机制可以用来: 在运行时 ...

最新文章

  1. 使用Nmap获取目标服务器开放的服务以及操作系统信息
  2. Linux动态库和静态库比较
  3. Hdu_2063 过山车 -最大匹配(邻接表版)
  4. [数字技巧]最大连续子序列和
  5. 使用eclipse开发Java web应用
  6. CodeForces-985C Liebig's Barrels
  7. [剑指offer]面试题26:复杂链表的复制
  8. bzoj2287【POJ Challenge】消失之物 缺一01背包
  9. CSDN博客图片水印|自定义水印|去除水印
  10. ActiveMq使用笔记
  11. 逻辑回归与朴素贝叶斯的战争
  12. Struts2源码阅读(六)_ActionProxyActionInvocation
  13. 作者:赵国栋(1974-),男,中关村大数据产业联盟秘书长,北京大数据研究院副院长,北京汇冠新 技术股份有限公司独立董事...
  14. Dokcer值得学习吗
  15. 【论文写作】课程指导平台的开发中界面设计如何写
  16. 宝鸡市二检理科数学跟踪训练题
  17. 深入浅出MFC:Windows程序的生与死
  18. 数学建模 论文 各部分 写作指导 及 获奖技巧讲解【美赛MCM/ICM】
  19. Ubuntu各个版本下载和安装
  20. linu系统初始化配置

热门文章

  1. python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...
  2. python json.loads namespace_python json.loads兼容单引号数据的方法
  3. 下拉选择框 其他_列表框 vs 下拉列表,哪个更好?
  4. servlet 返回可访问文件_JavaWeb技术(4):Servlet的理解(上)
  5. mysql列调换位置_mysql互换表中两列数据方法
  6. java 返回js_如何基于java或js获取URL返回状态码
  7. 【转】重新打包DebianISO实现无人应答安装(UEFI+BIOS)
  8. 第五节:Task构造函数之TaskCreationOptions枚举处理父子线程之间的关系。
  9. C#多线程编程系列(一)- 简介
  10. linux – syslog,rsyslog和syslog-ng之间有什么区别?