我们有一个脚本,它使用platform module来检测各种客户机的操作系统版本。在
查资料平台.py,我可以看到在Windows系统上,它使用系统getwindowsverion(). 不幸的是,在Windows 8.1系统上,该功能报告:
>>> sys.getwindowsversion()
sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
Windows 8.1为6.3.9600:
^{pr2}$所以,我意识到我可以写一些额外的逻辑平台.释放(),如果返回8,则执行第二次检查并尝试运行ver
,但这似乎有点复杂。在
有人知道更好的方法吗?在
运行ActivePython2.7.2.5以防重要。在
你可以简单地从注册表中得到它 HKEY U本地机器\软件\Microsoft\Windows NT\CurrentVersion 这里有值名CurrentVersion 而windows8.1中的数据将是6.3 它可以在任何windows平台上运行
微软改变了version函数的行为方式。有关更多信息,请参见this page。在
我解决这个问题的方法是使用ctypes和内核模式函数RtlGetVersion。尽管这是一个内核模式函数,但它可以从用户模式调用。我在很多版本的Windows上都试过了,但都没有问题。在
相关问题 更多 >
编程相关推荐