我可以使用Java应用程序更改主机系统(Windows XP)的默认语言吗? 如果是,我该怎么做?
答案 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
:
int lcid = 0x409;
final int SPI_SETDEFAULTINPUTLANG = 90;
User32.INSTANCE.SystemParamtersInfo(SPI_SETDEFAULTINPUTLANG, 0, new int[] { lcid }, 0);
然后你的默认输入语言已经改变了!
答案 1 :(得分:0)