以编程方式更改操作系统区域设置

时间:2017-04-11 14:36:24

标签: c# windows windows-ce

我们使用Windows CE 6.0设备,其中语言环境设置为“英语(英国)。此语言环境使用点(。)作为Decimal symbol(十进制),逗号(,)作为{ {1}}(组)。

通常,客户既不会弄乱,也不会看到操作系统设置,因为只有我们的应用程序正在运行。但是,最近客户设法将我们的应用程序退出到Windows CE桌面,然后将语言环境更改为“德语(德国)”。

Locale set to Germany

德语区域设置交换小数和组符号。这导致先前存储的注册表或XML值(例如“7.724”)被读作“7724”!有没有简单的方法来解决这个问题?

一些暗示自己的想法是:

  • 强制系统区域设置回“英语(英国)”
  • 更新注册表,以便小数和组符号分别为点和逗号(无论其他区域设置如何)
  • 对于所有十进制值:首先转换为字符串,替换使用当前系统小数分隔符找到的任何组符号,然后仅转换为单个
  • 更新所有Digit grouping symbol来电以使用Convert.ToXXX(Object)

0 个答案:

没有答案