7

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

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

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

4

2 回答 2

7

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

yourMainJFrame.getInputContext().selectInputMethod(new Locale("fa", "IR")); 
于 2013-01-24T13:43:54.533 回答
0

上面的方法对我不起作用,所以我使用了 Robot 的原始方法

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);
            }
        }
    });
}
于 2021-05-06T18:32:33.310 回答