当按下引号键时,java.awt.Robot.keyPress 抛出 IllegalArgumentException

2024-02-06

当您尝试使用 Robot.keyPress 键入"(双引号)它抛出 java.lang.IllegalArgumentException: Invalid key code。

我该如何解决或解决这个问题?

如果有帮助的话,我目前使用的是 Windows。

测试代码:

import java.awt.Robot;
import java.awt.event.KeyEvent;

public class Test {
    public static void main(String[] args) throws Exception {
        Robot robot = new Robot();
        try {
            robot.keyPress(KeyEvent.VK_QUOTEDBL);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

例外:

java.lang.IllegalArgumentException: Invalid key code
    at sun.awt.windows.WRobotPeer.keyPress(Native Method)
    at java.awt.Robot.keyPress(Robot.java:358)

我认为您收到错误是因为没有"键盘上的键。"几乎肯定会位于键盘的某个键上,但它很可能会被移动。而不是试图“按下”",您应该“按”Shift 和该键的“基本”字符,即您单独键入该键时得到的字符。

我发现在命令提示符下运行以下类给我留下了一个"特点:

import java.awt.Robot;
import java.awt.event.KeyEvent;

public class Test {
    public static void main(String[] args) throws Exception {
        Robot robot = new Robot();
        try {
            robot.keyPress(KeyEvent.VK_SHIFT);
            robot.keyPress(KeyEvent.VK_2);
            robot.keyRelease(KeyEvent.VK_SHIFT);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在英国键盘(我正在使用)上,"字符被移动2,这就是我使用的原因KeyEvent.VK_2。它可能位于其他键盘上的其他位置 - 如果我没记错的话,它在美国键盘上被移动单引号。在这种情况下,你会使用VK_QUOTE代替VK_2.

我还发现释放VK_SHIFTkeypress 是必要的,以避免 Windows 认为 Shift 键仍被按住的各种奇怪情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当按下引号键时,java.awt.Robot.keyPress 抛出 IllegalArgumentException 的相关文章

  • 将所有 BigDecimal 运算设置为特定精度?

    我的Java程序以高精度计算为中心 需要精确到至少120位小数 因此 程序中所有非整数都将由 BigDecimal 表示 显然 我需要指定 BigDecimal 的舍入精度 以避免无限小数表达式等 目前 我发现必须在 BigDecimal
  • 使用 Intellij 2017.2 /out 目录构建会重复 /build 目录中的文件

    更新到 Intellij 2017 2 后 构建我的项目会创建一个 out包含生成的源文件和资源文件的目录 这些文件与已包含的文件重复 build并导致duplicate class生成的类的编译器错误 关于 Gradle 或 Intell
  • 如何在谷歌地图中使用latlng字符串数组绘制多边形

    在我的应用程序中 我有包含 imagview 的 recyclerview 并且该 imageview 通过使用我存储在 sqlite 中的坐标包含静态地图图像 当我单击该图像时 我将该字符串数组格式的坐标传递给其他地图活动 然后使用该字符
  • IntelliJ Ultimate 在 Play 2.3 (Java) 项目测试中找不到路由

    虽然我的测试运行得很好 但 IntelliJ 抱怨它找不到路由对象 并且代码自动完成无法工作 我已经查看了所有文档 这应该可以工作 这是 IntelliJ 的报告内容 关于我的项目配置可能有什么问题有什么想法吗 这很可能与以下事实有关 ro
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • Java 中支持多少维数组,例如 a[1][1][1][1]....[1]? [复制]

    这个问题在这里已经有答案了 Java支持多少维数组a 1 1 1 1 1 我可以为数组声明无限数量的维度吗 数组维数限制为 255 有趣的是 JLS定义的Java编程语言没有这样的限制 但是你可以在JVM规范 http docs oracl
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 在 SWT 中单击鼠标触发事件?

    在SWT中 对于MouseListener接口 可用的方法有mouseUp mouseDown and mouseDoubleClick 如何根据用户点击触发事件 我们可以通过结合来做到这一点mouseUp and mouseDown 但没
  • 竞争性编码 - 以最低成本清除所有级别:未通过所有测试用例

    当我遇到这个问题时 我正在一个竞争性编码网站上解决问题 问题指出 游戏中有 N 个关卡和 M 种可用武器 等级编号从 0 到 N 1 武器编号从 0 到 M 1 您可以按任意顺序清除这些级别 在每个关卡中 需要这些 M 武器的某些子集才能通
  • java:如何设置全局线程ID?

    是否有可能为线程设置唯一ID 在分布式系统中 线程是在许多不同的机器上创建的 例如通过 RMI 我需要它来创建日志消息 根据我的研究 我知道可以使用 log4j mdc ndc 来完成 但只能在单线程中完成 我的问题是 在创建线程时必须设置
  • java.lang.ClassCastException: [B 无法转换为 java.lang.String

    我编写了一个带有字段 LoginId 和密码的实体类 我使用 AES ENCRYPT 加密密码并将其存储在数据库中 我只想检索已解密的密码 所以 我使用 AES DECRYPT 使用本机查询是在 OPen JPA 2 0 中 我写的查询是
  • iText7 将 SVG 添加到 PdfDocument 中以及可能出现的问题

    关于问题的答案 如何使用 iText7 将 SVG 添加到 PDF 这是一个链接点击这里 https stackoverflow com questions 50059456 how to add an svg to a pdf using
  • 如何在不同的班级中启动和停止计时器?

    我想测量从传入 HTTP 请求开始到应用程序到达某个点的时间 这两个时间点都位于不同的类中 我将如何启动和停止这些不同类别的计时器 我没有看到使用 MeterRegistry 中的 命名 计时器的方法 我该怎么办呢 您可以使用 AOP 如下
  • Wildfly 10.1 消耗所有核心

    我们最近将银行应用程序从 java 1 6 升级到 1 8 将 jboss 4 x 升级到 wildfly 10 1 我们观察到 java 消耗了机器上可用的所有核心 10 有人可以告诉是什么原因吗 通常情况下 jboss 4 x 的最大
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • 找出该月第一个星期日/星期一等的日期

    我想在java中检测每个月第一周 第二周的第一个星期日 星期一的日期 我怎样才能实现它 我已经检查了 java 中的 Calendar 类和 Date 类 但无法找到解决方案 所以请帮助我解决这个问题 Calendar calendar C
  • 有没有办法处理Java堆空间异常[重复]

    这个问题在这里已经有答案了 我正在寻找将文件输入流转换为大文件 文件大小为 100MB 并且抛出 java lang OutOfMemoryError Java Heap space import java io FileInputStre
  • 文档过滤器在 Java 中不起作用?

    在超过 10 个字符的文本字段中 它必须显示错误 为此 我使用了文档过滤器 JTextField field JTextField txtFld AbstractDocument document AbstractDocument fiel
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • 在java中打印阿拉伯字符串

    我试图在 java 中显示阿拉伯语文本 但它显示垃圾字符 示例 或有时在我打印时仅显示问号 我如何才能打印阿拉伯语 我听说它与unicode和UTF 8有关 这是我第一次使用语言 所以不知道 我正在使用 Eclipse Indigo IDE

随机推荐

  • Azure Function 读取 local.settings.json 到对象

    我知道我可以在 local settings json 的 value 部分下添加所有环境变量 然而 我正在努力保持家里整洁 并且希望我能做这样的事情 本地 settings json IsEncrypted false Values Az
  • 压缩 Json Javascript [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目前 我将 JSON 从 Ajax 帖子发送到服务器 然后使用 Jackson Mapper 将其转换
  • Clickhouse字符串字段磁盘使用情况:null vs 空

    我正在为一个大型 Clickhouse 表设计一个架构 其中的字符串字段可能非常稀疏 我想知道这些字段是否应该为空或者我是否应该存储一个空字符串 作为默认值 就存储而言 哪个更好 您应该存储一个空字符串 可空列会占用更多磁盘空间 并使查询速
  • Visual C++ 应用程序作为 MS Access 数据库的前端 - 多用户数据访问和类似画布的 GUI 问题

    在我工作的公司中 我有机会编写一个应用程序 它将取代旧的 Excel 工作簿 用于计划生产队列 由于 VBA 很简单并且 Excel 易于使用 因此几年来 这个工作簿被几个人用来计划 添加有关当前生产状态的更改 注释 整个工作簿几乎没有功能
  • 在命名空间中定义双精度常量的最佳方法是什么?

    在命名空间中定义双精度常量的最佳方法是什么 例如 constant h namespace constant static const double PI 3 1415926535 No need in constant cpp 这是最好的
  • 如何打印 pandas.io.formats.style.Styler 对象

    我有以下代码可以生成 pandas io formats style Styler 对象 import pandas as pd import numpy as np df pd DataFrame text foo foo bar bar
  • Visual Studio 2012 无法识别所有挂起的更改?

    我正在与我的团队一起使用 TFS 进行项目 当我尝试为我的类创建新的建模项目时出现问题 它不会出现在待处理的更改中 所以我的做法是这样的 首先 我进入保存课程的文件夹 我尝试了很多组合 我尝试首先右键单击我的文件夹并输入 签出进行编辑 然后
  • 如果在已经为 true 的情况下出现新错误,则 Validation.HasError 不会再次触发

    我使用 MVVM 和我的对象实现 IDataErrorInfo 设置属性后 我运行自定义验证方法 如果验证通过 我将返回 String empty 这会将 Validation HasError 设置为 false 如果验证失败 则 Val
  • Angular 4 + zonejs:路由在未捕获的错误后停止工作

    如果在路由期间组件 构造函数或 ngOnInit 出现未捕获的错误 则导航将不再起作用 即使有一个全局 ErrorHandler 和一个用于 RouterModule 的 ErrorHandler 也会发生这种情况 也添加了一个 ZoneL
  • 如何在 ITRS Geneos 中监控 MQ

    谁能举例说明如何在 ITRS 中设置如何使用 mq queue 插件监控 MQ 队列 我下面有两张它正在寻找的屏幕截图 我不确定这将如何帮助我们确定队列中卡住了多少消息 高级 选项卡下的设置告诉插件如何连接到 IBM MQ 队列管理器 如何
  • 是否可以让“dput”返回在封闭环境之外运行的源代码?

    假设我有一个闭包add y y 它返回一个函数 该函数添加y到它的输入 add y lt function y function x x y add 4 lt add y 4 所以价值add 4是一个将 4 添加到其输入的函数 这有效 我想
  • KMP算法与Z算法的关系

    KMP and Z算法是众所周知的字符串搜索算法 KMP算法通过 KMP 失效函数寻找模式 该函数定义为 pat是搜索模式 lps i pat 0 i 的最长真前缀 也是 pat 0 i 的后缀 e g for string abcab 这
  • 如何使用C#通过P6 Web服务读写P6DB中的数据

    我想在 P6 Web 服务中使用基于 Cookie 的身份验证 我点击了以下两个链接 http docs oracle com cd E16281 01 Technical Documentation Web Services Progra
  • 最多不能超过 50%。矩阵乘法的理论性能

    Problem 我正在学习 HPC 和代码优化 我尝试复制 Goto 的开创性矩阵乘法论文中的结果 http www cs utexas edu users pingali CS378 2008sp papers gotoPaper pdf
  • 基于边界的三角形未按预期渲染

    我试图用 4 个旋转的三角形制作一个完整的正方形 但是当我放置它们时 它们之间有一个很薄的空间 更奇怪的是 当我旋转整个东西时 线条在 Chrome 中消失 但在 Firefox 中出现在三角形的中间 再次形成 X jsFiddle htt
  • 如何使用 JQuery 发送按键触发器

    我如何发送特定按键代码的触发按键 例如 以编程方式使用 JQuery 的 TextBox 上的 9 事件 这就是我打算做的 以编程方式向文本框输入值 然后以编程方式触发文本框上的 Tab 键以退出该字段 my code tags1 val
  • 即使安装了 mtl,也找不到模块“Control.Monad.State”

    当我尝试加载包含的模块时import Control Monad State I got Could not find module Control Monad State Perhaps you meant Control Monad S
  • 语义分割中的上采样

    我正在尝试实现一篇关于语义分割的论文 但我对如何对分割网络生成的预测图进行上采样以匹配输入图像大小感到困惑 例如 我使用 Resnet101 的变体作为分割网络 如本文所使用 通过这种网络结构 大小为 321x321 的输入 论文中再次使用
  • Log4net - 如何知道文件何时滚动?

    我有一个由 log4net 创建的日志文件 该文件每小时都会更改 有没有办法知道这个滚动何时发生 就像 log4net 库中的一个事件一样 我可以绑定到该事件 并在触发该事件时执行操作 我不是在寻找代码示例 只是想知道此事件是否存在 以及在
  • 当按下引号键时,java.awt.Robot.keyPress 抛出 IllegalArgumentException

    当您尝试使用 Robot keyPress 键入 双引号 它抛出 java lang IllegalArgumentException Invalid key code 我该如何解决或解决这个问题 如果有帮助的话 我目前使用的是 Windo