我试图在我的 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/