c# – Windows注册表中的ProductName,它是针对不同语言本地化的吗?

我试图在我的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企业版(企业版)中文版:

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

这表明价值没有本地化.

点赞