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

文章目录

  • Java:使用Robot类模拟键盘, 以Alt码方式输出汉字
    • java.awt.Robot类
    • 使用Alt码输出汉字
      • 尝试 `Alt + 数字` 输出汉字
      • Alt 后面数字代表的意思
    • 使用java获取一个符号的区位码
    • 使用java Robot利用键盘输出String的完整代码如下

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编码

  1. Alt 后面的数字如果在(0-255), 则输出的是数字对应的 ASCII 代码表中对应的字符.
  2. Alt 后面的数字如果大于(255), 则查询的是国标区位码里的字符了,包括我们常用的个汉字也在里面.
  3. 如果 Alt 后面的数字 >= 65536, 则会先将数字除以65536, 得到余数, 打印出余数数字对应的国标区位码中的字符.

Alt + 123456 输出汉字 的执行过程:
123456 转为16进制 1E240, 取后四位E240到国标区位码中查到汉字 输出.
用人话来说就是, 首先因为 123456 >= 65536, 那么对 123456➗65536=1……57920, 取得 57920 后到国标区位码中查到汉字 输出.

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

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

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

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

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

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

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

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

    3. 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本

      ** 用java的robot类以及Gui 制作一个游戏(阴阳师)脚本 **   由于阴阳师这个游戏肝度太大,就决定写一个脚本来模拟玩家的重复性操作.所以我就决定用java中的robot类中的一些方法来 ...

    4. JAVA中Robot类的运用,实现‘别踩白块’游戏辅助

      Robot 一.功能分析 http://www.4399.com/flash/135255_3.htm 别踩白块游戏,运用Java Robot类完成游戏脚本,自动完成踩黑块. 二.设计思路 首先创建一 ...

    5. JAVA类加载对字节码的处理_深入理解Java虚拟机(类文件结构+类加载机制+字节码执行引擎)...

      [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 周志明的< ...

    6. 【Java Calendar日历类】可视化日历程序(控制台输出)

      Calendar日历类 Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年.月.日.时.分.秒的展示和计算. GregorianCalendar 是 Calendar 的一 ...

    7. Java的Class类文件结构及基本字节码指令

      Class类文件的结构 概念:Class文件是一组以8位字节为基础单位的二进制流 按顺序整齐排列 没有任何分隔符,内容全部是运行时的必要数据,没有空隙存在 排序方式:高位在前 Big-Endian:最 ...

    8. Java实用工具类五:URL转码、解码类

      此文仅对自己工作中用到的类进行总结,方便以后的使用. package com.cn.hnust.util;import java.io.UnsupportedEncodingException; im ...

    9. java借助Robot给微信好友自动发消息(可发送表情包)

      这个其实不光微信,QQ也是可以的,想一下平时如果想刷屏群聊,聊天不爽了想骂回去,惹女朋友生气了想不停的道歉,或者每天定时问候一下,这些如果都要自己手动操作也太麻烦了吧,还不如写一个程序解决了呢.(等等 ...

    最新文章

    1. Mac OS X 下mysql配置备忘
    2. Tushare的安装
    3. Structured Streaming 整合 Kafka指南
    4. VMware Workstation下减小ubuntu系统占用系统盘大小
    5. 【转】Elasticsearch+Django搜索引擎(二)
    6. python列表操作符_Python中list()列表操作符的案例分享
    7. linux 程序崩溃 gdb调试coredump文件
    8. Qt_QTableWidget 详解 最全用法 网格线样式 最后一列自拉伸
    9. mysql truncate语句_MySQL truncate table语句
    10. C# 图片直接打印方法
    11. mac上安装brew(最简易)
    12. CVPR 2022 | 基于密度与深度分解的自增强非成对图像去雾
    13. 注释大全,神兽护体,佛祖保佑,永无bug
    14. 函数名和变量名重名问题
    15. ubuntu下安装google拼音输入法
    16. LSM树的基本原理-学习笔记
    17. 淘宝上还有卖这种服务的
    18. 百度个性化地图如何在网页中使用?
    19. 苹果手机来电归属地_工信部 : 暂未出台取消手机号码归属地政策!
    20. AFNetworking官网文档及翻译

    热门文章

    1. 每个程序员都该知道的10大编程格言
    2. 西太平洋最大金枪鱼供应商丰群水产通过海洋管理委员会认证
    3. MenuItem和ContextMenu
    4. mysqldump where子句使用
    5. xml格式数据转coco数据
    6. 媒体查询适配代码 适配IOS等各类机型
    7. 完爆面试官!腾讯+字节+阿里面经真题汇总,成功定级腾讯T3-2
    8. 2021-07-13-braintechnology建立微信群
    9. PPTV网络电视2013 v3.5.1.0029 官方最新版
    10. 生化-离子转换单位以及一些特殊计算方法