使用Java应用程序更改默认Windows语言

时间:2010-04-27 20:12:14

标签: java

我可以使用Java应用程序更改主机系统(Windows XP)的默认语言吗? 如果是,我该怎么做?

2 个答案:

答案 0 :(得分:5)

您可以使用Windows SystemParametersInfo API设置默认输入语言。

BOOL WINAPI SystemParametersInfo(
  __in     UINT uiAction,
  __in     UINT uiParam,
  __inout  PVOID pvParam,
  __in     UINT fWinIni
);

使用JNA比使用JNI容易得多。要使用JNA在User32.dll中调用此API函数,请创建一个接口:

public interface User32 extends StdCallLibrary
{
   User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);

   bool SystemParametersInfo(int uiAction, int uiParam, int[] pInt, int fWinIni);
}

您确定要更改为的语言的LCID。 (Here's来自MSDN的列表。)例如,英语是0x409。然后在SystemParametersInfo

的调用中使用LCID
int lcid = 0x409;
final int SPI_SETDEFAULTINPUTLANG = 90; 
User32.INSTANCE.SystemParamtersInfo(SPI_SETDEFAULTINPUTLANG, 0, new int[] { lcid }, 0);

然后你的默认输入语言已经改变了!

答案 1 :(得分:0)

Java SE API没有提供内置方法。我至少在Desktop API中看不到任何内容。您需要获取OS-native API。忘记这一点的Java,如果没有Java,你将如何做到这一点?一旦弄清楚,请使用Java中的JNI调用特定的API。