Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как определить язык системы в Win10 ?


chaplin.u@gmail.com

Вопрос

Рекомендуемые сообщения

  • 0
  • Модераторы
// uses FMX.Platform
var
LocaleService: IFMXLocaleService;
...
if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then
    Result := LocaleService.GetCurrentLangID;
...

 

Ссылка на комментарий
  • 0

итак по порядку :

1. GetCurrentLangID implements functionality to return the ID of the current locale used - даёт не язык а географическое значение языка (locale).

2. GetKeyboardLayoutNameW не смог победить. получил иероглифы. наверное ошибка в коде :

WCHAR * Result;     GetKeyboardLayoutNameW(Result);      Memo1->Lines->Add("loc=" + String(Result) );

3. LANGID GetSystemDefaultUILanguage(void); возвращает код и по этому коду получаем язык системы 

последний вариант по моему самый простой.

 

Ссылка на комментарий
  • 0
6 часов назад, chaplin.u@gmail.com сказал:

итак по порядку :

1. GetCurrentLangID implements functionality to return the ID of the current locale used - даёт не язык а географическое значение языка (locale).

2. GetKeyboardLayoutNameW не смог победить. получил иероглифы. наверное ошибка в коде :

WCHAR * Result;     GetKeyboardLayoutNameW(Result);      Memo1->Lines->Add("loc=" + String(Result) );


3. LANGID GetSystemDefaultUILanguage(void); возвращает код и по этому коду получаем язык системы 

последний вариант по моему самый простой.

 

var
  KeybLayout:HKL;
begin
  KeybLayout := GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil));
  showmessage(IntToHex(LoWord(KeybLayout), 5));

 

если раскладка US то получим 00409, если верить msdn https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx

то совпадает

Изменено пользователем Winexcel
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...