[英]KeyEvent.VK_MINUS interpreted as German 'ß' by Java Robot
以下代码将导致在使用 Java 7 的 MAC OSX 10.10 上键入“ß”而不是“-”。欢迎提供有关如何解决此问题的任何想法。
public static void main(String[] args) {
try {
String cmd = "open /Applications/TextEdit.app";
Runtime.getRuntime().exec(cmd);
Robot robot = new Robot();
robot.delay(2000);
robot.keyPress(KeyEvent.VK_MINUS);
robot.keyRelease(KeyEvent.VK_MINUS);
} catch (AWTException | IOException e) {
e.printStackTrace();
}
}
它没有明确说明,但是keyPress
方法的 Javadoc是用“键码”来表达的,这通常意味着它映射到键盘上的特定物理键,然后操作系统将其解释为某个键事件(例如“连字符”或“双 S”)。
标准德语布局在退格键左侧的两个键上有双 S,这是 QWERTY 键盘上的连字符/减号。
至于如何解决这个问题,您显然需要了解键盘布局。 有一个名为 Window Licker 的库,用于处理 Robot 的布局问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.