Могу ли я изменить язык по умолчанию для моей хост-системы (Windows XP) с помощью приложения Java? Если да, то как я могу это сделать?Изменение языка Windows по умолчанию с помощью приложения Java
2
A
ответ
0
5
Вы можете установить язык ввода по умолчанию, используя API Windows SystemParametersInfo.
BOOL WINAPI SystemParametersInfo(
__in UINT uiAction,
__in UINT uiParam,
__inout PVOID pvParam,
__in UINT fWinIni
);
Использование JNA намного проще, чем с помощью JNI. Для вызова этой функции API в User32.dll, используя ЮНА, создать интерфейс:
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. Затем использовать LCID в вызове SystemParametersInfo
:
int lcid = 0x409;
final int SPI_SETDEFAULTINPUTLANG = 90;
User32.INSTANCE.SystemParamtersInfo(SPI_SETDEFAULTINPUTLANG, 0, new int[] { lcid }, 0);
И ваш язык Тогда N ввода по умолчанию был изменен!
Вы можете получить доступ к API Windows через собственный интерфейс Java (JNI). Не знаете, какие функции API вам нужно вызвать, чтобы изменить язык по умолчанию. –
Вы хотите изменить язык ввода по умолчанию или региональные настройки по умолчанию? – mdma