Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Как изменить язык системы в windows программно?

#windows #cpp


Система windows server 2008 rc2
Вызовы
setlocale(LC_ALL,"Rus");
setlocale( LC_ALL, "ru_RU.CP1251" );
std::system("chcp 1251");

не прокатывают

Функция GetACP() (из winnls.h) возвращает 1252, а должна 1251.
Если вручную изменить язык системы
Панель управления - Часы, язык и регион - язык и региональные стандарты - дополнительно
- язык программ не поддерживающих юникод.
на русский то
GetACP() возвращает 1251.

Есть ли возможность это сделать?
Можно ли это сделать без подключения не стандартных библиотек?
    


Ответы

Ответ 1



Changing Non-Unicode programmatically to Russian. Вам нужна ф-ция NtSetDefaultLocale. Из доступного пользователю интерфейса библиотек Windows наиболее подходит SetLocaleInfo, но по описанию она слишком слабовата будет для Вашей задачи =( P.S. Нашел! Попробуйте SystemParametersInfo с SPI_SETDEFAULTINPUTLANG. Никогда бы не догадался!!!

Комментариев нет:

Отправить комментарий