Страницы

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

суббота, 9 марта 2019 г.

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

Система 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. Есть ли возможность это сделать? Можно ли это сделать без подключения не стандартных библиотек?


Ответ

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

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

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