要获取语言环境设置,例如短日期格式,我们一直将GetLocaleFormatSettings与GetThreadLocale一起使用。到目前为止,这一直没有问题。
我们的几个用户正在获得与Windows 7区域设置中配置的值不同的GetThreadLocale值。无论我们尝试什么,我们都无法重现此值,但是我向一个用户发送了一个测试程序以获取语言环境信息,并确保有足够的GetThreadLocale返回与GetUserDefaultLCID(2057)不同的LCID(1033)。因此,它们最终没有获得英国语言环境设置,而是获得了美国语言环境设置。
我们是否正确获取语言环境信息?我们应该使用GetUserDefaultLCID而不是GetThreadLocale吗?
谢谢
最佳答案
你并不是唯一的一个。我在新西兰的Windows 7上也看到了这一点,据我所知,它似乎只是出于某种原因而使Delphi应用程序崩溃。
我们发现的奇怪之处在于,可以通过“控制面板”切换到其他区域设置,然后再切换回NZ,即可解决此问题。我很想知道相同的解决方法是否可以为您解决这个问题,只是为了验证我们是否遇到了相同的现象。
我想知道通过Windows 7安装过程选择非美国区域设置是否以某种微妙的方式“做正确的事”,而这种微妙的方式只是出于某种原因而使Delphi应用程序跳闸。
为了找到它,我找到了与JP类似的测试代码,以找到一种解决方法,但我们的质量检查人员此后发现了“区域设置switcheroo”解决方法,因此他不希望再次完全重新安装Windows 7由于某些原因恢复到原始的时髦状态:-)