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

How could programmatically Set OS Measurement system to metric?

我想查看OS的当前度量单位,然后将其设置为Metrics。

提前致谢!

更新:

我在 C# 中使用了以下代码: Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\International", "iMeasuere", "0"); 当我通过 regedit 检查时它设置了注册表值,但是当我返回 OS 中的区域和语言设置面板时,我看到单位系统仍然是美国,之后注册表项重置为“1”

Computer\HKEY_CURRENT_USER\Control Panel\International\iMeasure registry value contains the currently logged in regional settings for unit of measure, 1 for US, 0 for metrics. You can modify it with Registry.SetValue (Your app probably need to start as Administrator) 虽然我强烈建议您的应用程序不应该自动执行此操作,但您应该询问用户他们是否真的想要这样做,因为它会影响其他应用程序。

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

另一方面,我认为强制应用程序以特定度量单位显示量级不是一个好主意。理论上,用户已经在设置上选择了他喜欢的单位系统。 "good way" 是根据您选择的单位计算您需要的所有内容,然后根据用户选择的单位将其呈现给用户。只是一个想法。