使用Ruby读取Windows中的区域位置设置(国家代码)?

我试图访问控制面板:区域和语言:位置:使用Ruby的当前位置设置。 我只对国家代码感兴趣。

我得到的最接近的是来自System Locale的国家代码,但那不是我所追求的。

`systeminfo | findstr /B /C:"System Locale"`.to_s.upcase.strip[30..31] 

我希望那里的人可能知道。 谢谢。

使用Win32 API的魔力:

 require 'Win32API' getgeoid = Win32API.new('kernel32', 'GetUserGeoID', ['L'], 'L') location = getgeoid.call(16) => 77 location.to_s(16) => "4d" 

要将您收到的值转换为实际的位置名称,请使用以下表格: http : //msdn.microsoft.com/zh-cn/library/dd374073.aspx

GetUserGeoID文档:
http://msdn.microsoft.com/en-us/library/dd318138.aspx

在哪里可以看到数字16被定义为GEOCLASS_NATION
http://msdn.microsoft.com/en-us/library/dd374070.aspx