python没有显示windows安装日期

python没有显示windows安装日期,python,windows,python-3.x,registry,winreg,Python,Windows,Python 3.x,Registry,Winreg,在Windows7和Python3.2.2上运行,以下脚本无法提供Windows安装日期 import winreg as reg from datetime import datetime key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows NT\CurrentVersion') secs = reg.QueryValueEx(key, 'InstallDate')[0] print(secs) dat

在Windows7和Python3.2.2上运行,以下脚本无法提供Windows安装日期

import winreg as reg
from datetime import datetime

key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows NT\CurrentVersion')
secs = reg.QueryValueEx(key, 'InstallDate')[0]
print(secs)
date = datetime.fromtimestamp(secs)
print(date)
输出总是:

0
1970-01-01 01:00:00

但是,当我使用regedit手动搜索键时,它包含十六进制值0x517c09e0(十进制为1367083488)

32位python进程进行的注册表访问被重定向到64位窗口上的另一个注册表配置单元

即使您的代码指定了对
Software\Microsoft\Windows NT\CurrentVersion
的访问权限,它实际上也被重定向到
Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion


您可能希望将
\u winreg.KEY\u WOW64\u 64KEY
\u winreg.KEY\u WOW64\u 32KEY
指定为
函数的
sam
参数


更多详细信息和。

请尝试打印
secs
类型(secs)
>secs 0>>>类型(secs)
显然,存在错误的值;索引的
[1]
怎么样?(我没有要测试的Windows)最后一件事我可以建议使用
reg.KEY\u READ | reg.KEY\u WOW64\u 64KEY
或者
reg.HKEY\u CURRENT\u USER
而不是
reg.HKEY\u LOCAL\u MACHINE
,最后这对您保存了我的脚本非常有帮助,我已将reg.KEY_ALL_ACCESS替换为reg.KEY_READ | reg.KEY_WOW64_64KEY,输出为:1367083488 2013-04-27 18:24:48我尝试了两个值,但没有结果,我应该如何安全地编写这种代码,以便在python解释器和Windows的32位和64位的不同变体上运行它?
\u winreg.KEY\u WOW64\u 32KEY
将使64位应用程序在32位注册表上运行