Как я могу программно получить доступ к региону компьютера Windows?
В частности, я ищу это значение на панели «Регион и язык» в Windows 10.
Или (поочередно)"Домашнее местоположение" в Панели управления -> Регион -> вкладка Местоположение.
Я надеюсь найти что-то, что будет работать для Windows 7-10. Также отмечу, что моим выбранным языком по умолчанию является английский (США). Я попытался выйти из системы и перезагрузить компьютер, чтобы применить любые изменения. Я пробовал следующие команды (от powershell):
wmic os get locale
// 0409 -> Translates to United States
// This one is especially problematic -
// it doesn't seem to change
// when I change my default language.
Get-Culture
// 1033 -> English (United States)
Get-UICulture
// 1033 -> English (United States)
Я бы предпочел не полагаться на выбранный язык операционной системы, если это вообще возможно. Было бы неплохо также решение без PowerShell, так как я не уверен, что могу полагаться на то, что сценарии PowerShell исполняются на компьютерах конечных пользователей.
Изменить: Этот ответ на переполнение стека работает для меня, и сообщает "Canada"
как и ожидалось (или "CA"
, если я использую GeoType 4, что я на самом деле после). Я не использую C Sharp (или что-либо, что могло бы напрямую взаимодействовать с kernel32.dll
), поэтому, если кто-нибудь знает, где взять эту информацию в другом месте, это все равно будет оценено. Но я могу написать приложение .NET Core, которое, если понадобится, заберет его у меня.