如何以编程方式将OS测量系统设置为公制?

时间:2017-09-17 05:35:36

标签: c# units-of-measurement

我想检查操作系统的当前测量单位,然后将其设置为指标。

提前致谢!

更新

我在c#中使用了以下代码: Registry.SetValue(@“HKEY_CURRENT_USER \ Control Panel \ International”,“iMeasuere”,“0”); 当我通过regedit检查时设置注册表值但是当我回到OS中的Region and Language设置面板时,我看到Units系统仍然是US,之后注册表项重置为“1”

2 个答案:

答案 0 :(得分:0)

Computer\HKEY_CURRENT_USER\Control Panel\International\iMeasure注册表值包含当前登录的计量单位区域设置,1表示美国,0表示指标。您可以使用Registry.SetValue进行修改(您的应用可能需要start as Administrator)虽然我强烈建议您的应用不应该自动执行此操作,但您应该询问用户是否真的需要此功能,因为它会影响其他应用。

答案 1 :(得分:0)

我认为此信息存储在注册表中,而您在该信息中找到的所有其他对象都是只读的。 请参阅此similar question的答案,该答案会更改注册表中的信息。请注意,这可能会因Windows版本而异,有些可能需要用户注销。

另一方面,我认为强制应用程序以特定的度量单位显示大小并不是一个好主意。理论上,用户已经选择了他喜欢的单位系统。这样做的“好方法”是在您选择的单位上计算您需要的所有东西,但是在他选择的单位上将其呈现给用户。只是一个想法。