我想更改当前以编程方式使用的 Windows 键盘。
我正在为东方语言编写一个字典程序,当用户单击不同的表格列时,我希望它切换到另一个键盘。
我对此进行了调查,并找到了使用 Windows PowerShell 和本机 C++ 代码的示例。PowerShell 似乎不起作用,而且我不熟悉本机 Windows API 和 C。任何有关如何在 Java 中实际完成此操作的帮助将不胜感激。
我想更改当前以编程方式使用的 Windows 键盘。
我正在为东方语言编写一个字典程序,当用户单击不同的表格列时,我希望它切换到另一个键盘。
我对此进行了调查,并找到了使用 Windows PowerShell 和本机 C++ 代码的示例。PowerShell 似乎不起作用,而且我不熟悉本机 Windows API 和 C。任何有关如何在 Java 中实际完成此操作的帮助将不胜感激。
这是一篇博客文章,解释了如何做到这一点:更改输入法
简而言之:
yourMainJFrame.getInputContext().selectInputMethod(new Locale("fa", "IR"));
上面的方法对我不起作用,所以我使用了 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);
}
}
});
}