3

在 Windows 7 和 Python 3.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)

4

1 回答 1

0

32 位 python 进程进行的注册表访问被重定向到 64 位 Windows 上的不同注册表配置单元。

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

您可能希望指定_winreg.KEY_WOW64_64KEY_winreg.KEY_WOW64_32KEY作为函数的sam参数reg.OpenKey

更多细节在这里这里

于 2014-07-03T10:17:21.960 回答