c# - Windows 注册表中的 ProductName,是否针对不同语言进行了本地化?

标签 c# .net windows registry windows-10

我试图在我的 C# 应用程序中检测 Windows 7、Windows 8/Windows 8.1 和 Windows 10 之间的差异。我试图通过使用

来确定这一点
 HKLM\Software\Microsoft\WindowsNT\CurrentVersion\ProductName

因为我可以可靠地检查此值是否包含“Windows 7”、“Windows 8”或“Windows 10”。

我的问题:当 Windows 使用不同的语言包时,ProductName 注册表值是否已本地化?这会以英语可靠地返回上述值,还是会根据操作系统语言而改变?

在我因为没有使用其他每个人都喜欢推荐的确定操作系统的方法而受到打击之前...使用 OSVersion已经出来了,因为它并不总是返回正确的值。此外,GetVersion and GetVersionEx也不是一个选项,因为在 Windows 8.1 之后不推荐使用它们,它们将 Windows 10 误认为是 Windows 8。推荐的 Version Helper functions假设要替换那些在 C# 中不可用的方法。如果有人知道另一种确定这些操作系统之间差异的可靠方法,请告诉我。

最佳答案

Windows 10 企业版(Enterprise)中文版:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName = Windows 10 Enterprise

这表明该值未本地化。

关于c# - Windows 注册表中的 ProductName,是否针对不同语言进行了本地化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620977/

相关文章:

c# - 如何查看系统音频是否静音?

Windows Server 2019 中的 Java 8 性能问题

windows - Windows 上 gulp 的编码问题

c# - 在 WindowsFormsHost 上使用 RenderTargetBitmap

windows - 将 DNS 条目(例如 server.domain.com)添加到域 Controller

c# - DateTime.Now 作为参数值 C#

c# - 在 MongoDB 中存储动态 JSON 数据

c# - 如何执行DOS命令并检索结果

c# - 表单不响应 KeyDown 事件

c# - 将程序集加载到当前域的正确方法