从注册表读取Windows OS版本是否安全?
据介绍,GetVersionEx(获取当前windows版本的实际方式)从windows 8.1开始就已被弃用。显然,如果在Windows 8.1或10计算机上调用,它会返回错误的值(对应于Windows 8)。但是,如果相应地修改了应用程序的清单,则可以使其正确返回。但我不确定这是否是一个好的解决方案,因为 对于Windows 8.1之后的版本,GetVersionEx可能会被更改或不可用 我只是想从这个注册表项中读取我需要的信息:HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 考虑到目前的情况(API不受欢迎),我有什么理由避免这样做吗 有什么理由我应该避免这样做吗从注册表读取Windows OS版本是否安全?,windows,winapi,Windows,Winapi,据介绍,GetVersionEx(获取当前windows版本的实际方式)从windows 8.1开始就已被弃用。显然,如果在Windows 8.1或10计算机上调用,它会返回错误的值(对应于Windows 8)。但是,如果相应地修改了应用程序的清单,则可以使其正确返回。但我不确定这是否是一个好的解决方案,因为 对于Windows 8.1之后的版本,GetVersionEx可能会被更改或不可用 我只是想从这个注册表项中读取我需要的信息:HKEY\U LOCAL\U MACHINE\SOFTWARE
未来版本的Windows可能不会包含该注册表项中所需的信息。此注册表项的可能重复项不是重复项。在这个问题上,需要一个获得操作系统的解决方案。我在问从注册表中获取这些信息是否安全。在另一个问题中,我看不到任何关于注册表的内容。“显然,如果在Windows 8.1或10计算机上调用它,它会返回错误的值(对应于Windows 8)”——仅当您的应用程序不包含这些版本的兼容性清单时。请仔细阅读文档<代码>GetVersionEx()现在可以识别清单。如果您的应用程序没有明确声明支持Windows 8.1或10,则
GetVersionEx()
将不再报告它们。但是如果你的应用程序声称支持它们,GetVersionEx()
将按预期为它们报告正确的信息。我知道这一点。但是,文档中明确指出“GetVersionEx可能会被修改或不适用于Windows 8.1之后的版本”。如果它在某个时候不再存在,那么修改清单将毫无意义,不是吗?