Как получить «Региональный формат» в Windows 10 - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь выяснить, как можно получить настройку «регионального формата» на Windows 10 (см. Рисунок ниже).

Я пробовал GetLocaleInfoEx, практически со всеми комбинациями параметров, но этот нигде не обнаружился.

С другой стороны, этот параметр влияет на то, что возвращает GetThreadLocale:

Некоторые примеры с ожидаемыми значениями возврата от GetThreadLocale согласно эта документация Microsoft , код C ++ в конце вопроса.

+--------------------------+-----------------------------------+
|     Regional format      | Value returned by GetThreadLocale |
+--------------------------+-----------------------------------+
| French (Switzerland)     | 0x100c                            |
| French (France)          | 0x040c                            |
| German (Germany)         | 0x0407                            |
| English (United states)  | 0x0409                            |
| English (United Kingdom) | 0x0809                            |
+--------------------------+-----------------------------------+

Некоторые примеры неожиданных (и недокументированных) возвращаемых значений из GetThreadLocale:

+-----------------------+-----------------------------------+
|    Regional format    | Value returned by GetThreadLocale |
+-----------------------+-----------------------------------+
| English (Switzerland) | 0x0c00                            |
| English (Germany)     | 0x0c00                            |
| German (Italy)        | 0x0c00                            |
+-----------------------+-----------------------------------+

Мне действительно интересно, что это 0x0c00 значение, возвращаемое GetThreadLocale? *

#include <windows.h>
#include <stdio.h>

int main()
{
  printf("GetThreadLocale: %08x\n", GetThreadLocale());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...