在 java 中更改 Windows 键盘



我想更改当前以编程方式使用的Windows键盘。

我正在为一种东方语言编写一个字典程序,我希望当用户单击不同的表列时,它切换到另一个键盘。

我对此进行了研究,并找到了使用Windows PowerShell和本机C++代码的示例。PowerShell似乎不起作用,我不熟悉本机Windows API和C。任何关于如何在 Java 中实际完成此操作的帮助将不胜感激。

这里有一篇博客文章解释了如何做到这一点: 更改输入法
简而言之:

yourMainJFrame.getInputContext().selectInputMethod(new Locale("fa", "IR")); 

上面的方法对我不起作用,所以我使用机器人使用了原始方式

public static void switchKeyboardLanguage()
{
    SwingUtilities.invokeLater(new Runnable()
    {
        public void run()
        {
            try
            {
                Robot robot = new Robot();
                robot.keyPress(KeyEvent.VK_ALT);
                robot.keyPress(KeyEvent.VK_SHIFT);
                robot.delay(10);
                robot.keyRelease(KeyEvent.VK_ALT);
                robot.keyRelease(KeyEvent.VK_SHIFT);
            }
            catch (AWTException e)
            {
                LogUtils.logError("Failed to use Robot, got exception: ", e);
            }
        }
    });
}

最新更新