Как я могу получить региональную настройку расположения окон? - PullRequest
1 голос
/ 06 октября 2011

Я могу найти много информации о том, как получить региональные и культурные параметры в .Net, но ни один из них не получает текущую настройку LOCATION.Кто-нибудь знает, как это сделать, кроме использования нового Location API (он должен работать на> = XP).

В случае, если вы не уверены, местоположение устанавливается в региональных настройках на вкладке LOCATION, а невкладки «Форматы» или «Языки».

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Aha!Наконец нашел его: http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/a4bb7327-f9d3-4115-a455-f664a0818120

Требуемый код по ссылке:

using System.Runtime.InteropServices;
using System.Text;

private const int GEOCLASS_NATION = 16;

//SYSGEOTYPE
private const int GEO_NATION = 1;
private const int GEO_LATITUDE = 2;
private const int GEO_LONGITUDE = 3;
private const int GEO_ISO2 = 4;
private const int GEO_ISO3 = 5;
private const int GEO_RFC1766 = 6;
private const int GEO_LCID = 7;
private const int GEO_FRIENDLYNAME = 8;
private const int GEO_OFFICIALNAME = 9;
private const int GEO_TIMEZONES = 10;
private const int GEO_OFFICIALLANGUAGES = 11;


[DllImport("kernel32.dll")]
static extern int GetUserGeoID(int geoId);
[DllImport("kernel32.dll")]
static extern int GetGeoInfo(int geoid, int GeoType, StringBuilder lpGeoData, int cchData, int langid);
[DllImport("kernel32.dll")]
static extern int GetUserDefaultLCID();

static void Main(string[] args)
{
  int geoId = GetUserGeoID(GEOCLASS_NATION);
  string friendlyName = GetGeoFriendlyName(geoId);
}


private string GetGeoFriendlyName(int geoId)
{
  int lcid = GetUserDefaultLCID();
  StringBuilder bldr = new StringBuilder(50);
  GetGeoInfo(geoId, GEO_FRIENDLYNAME, bldr, bldr.Capacity, lcid);

  return bldr.ToString();
}
1 голос
/ 06 октября 2011

Функция GetUserGeoID сообщит вам.Управляемый эквивалент выглядит как CurrentRegion.GeoId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...