none
Региональны настройки RRS feed

  • Вопрос

  • Как определить программно какая страна указана в Региональных настройках->Расположение->Текущее расположение. Пробовал RegionInfo и CultureInfo, но они отображают информацию только согласно установленному формату.

    19 октября 2011 г. 11:13

Ответы

  • С http://social.msdn.microsoft.com/Forums/en-IN/netfxbcl/thread/a4bb7327-f9d3-4115-a455-f664a0818120

    using System.Runtime.InteropServices;
    using System.Text;
    
    namespace ConsoleApplication4
    {
        class Program
        {
            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();
    
            private static string GetGeoFriendlyName(int geoId)
            {
                int lcid = GetUserDefaultLCID();
                StringBuilder bldr = new StringBuilder(50);
                GetGeoInfo(geoId, GEO_FRIENDLYNAME, bldr, bldr.Capacity, lcid);
    
                return bldr.ToString();
            }
    
            static void Main(string[] args)
            {
                int geoId = GetUserGeoID(GEOCLASS_NATION);
                string friendlyName = GetGeoFriendlyName(geoId);
            }
        }
    }
    
    


    • Помечено в качестве ответа Abolmasov Dmitry 19 октября 2011 г. 12:29
    19 октября 2011 г. 11:43

Все ответы

  • С http://social.msdn.microsoft.com/Forums/en-IN/netfxbcl/thread/a4bb7327-f9d3-4115-a455-f664a0818120

    using System.Runtime.InteropServices;
    using System.Text;
    
    namespace ConsoleApplication4
    {
        class Program
        {
            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();
    
            private static string GetGeoFriendlyName(int geoId)
            {
                int lcid = GetUserDefaultLCID();
                StringBuilder bldr = new StringBuilder(50);
                GetGeoInfo(geoId, GEO_FRIENDLYNAME, bldr, bldr.Capacity, lcid);
    
                return bldr.ToString();
            }
    
            static void Main(string[] args)
            {
                int geoId = GetUserGeoID(GEOCLASS_NATION);
                string friendlyName = GetGeoFriendlyName(geoId);
            }
        }
    }
    
    


    • Помечено в качестве ответа Abolmasov Dmitry 19 октября 2011 г. 12:29
    19 октября 2011 г. 11:43
  • Спасибо большое.

    24 октября 2011 г. 12:13