繁体   English   中英

KeyEvent.VK_MINUS 被 Java Robot 解释为德语“ß”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM