Есть ли библиотека Microsoft Do tNet для настройки языка в ОС, как это делает winuserlanguagelist?
Если вы запускаете приложение пользовательского интерфейса, такое как wpf, довольно легко установить настройки языка клавиатуры или культуры для приложения. Например: Изменить системный язык для одного / активного окна в WPF
Есть ли решение для установки языка клавиатуры для всех пользователей на всем компьютере?
Если вы действительно хотите изменить язык для текущего пользователя и других, это становится сложнее. Я просмотрел PInvoke , чтобы проверить, есть ли windows dll для этого, и я не смог их найти.
Просматривая msdn , я также читал это:
Чтобы получить язык пользовательского интерфейса, приложение может вызвать GetUserDefaultUILanguage или GetUserPreferredUILanguages. Приложение не может изменить язык пользовательского интерфейса, поскольку нет функции для его установки.
В подобных случаях всегда есть WMI. К сожалению, я лично не смог найти ничего, чтобы установить язык оттуда.
Этот ответ указывает, что эта информация, вероятно, содержится в реестре Windows: { ссылка }
Скорее всего, вам понадобится этот список lcids: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f
После изменения реестра потребуется перезагрузка.
Кажется как это сделать не так-то просто. Я мог придумать только 2 дополнительных варианта;
- Подслушивать cmd-let powershell для проверки изменений реестра или вызовов Wmi с помощью, например, проводника процессов и воссоздать logi c в C#
- Просто используйте класс process для запуска сценариев PowerShell. Существует также библиотека для запуска Powershell, которая может быть полезна.
Я чувствую, что есть лучшие ответы, и я не ветеран Windows, поэтому не воспринимайте это как абсолютная правда. Но я нашел время, чтобы немного изучить ваш вопрос, и я надеюсь, что это поможет вам хоть немного.