我运行这个dos命令:
reg query HKLM\SOFTWARE\Classes\CLSID\{824293FD-32E2-4DAA-BC28-166C140543BE}\InprocServer32 /ve
并成功获得一个值。 在同一个终端中,当我使用python时,如下所示:
cmd = "reg query HKLM\\SOFTWARE\\Classes\\CLSID\\{824293FD-32E2-4DAA-BC28-166C140543BE}\\InprocServer32 /ve"
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
output = proc.communicate()[0]
失败,出现以下错误:
ERROR: The system was unable to find the specified registry key or value.
我用的是和管理员打开的同一个终端。 我甚至试着把它放到一个x.bat文件中,并在一个python子进程中调用x.bat……仍然是同样的错误。 注册表项对所有用户具有读取权限,对管理员具有完全控制权。 这是在WindowsServer2008R2和Python2.7上发生的。
另外,我对winreg也没什么好感,所以有什么想法可以通过在python中运行批处理命令来解决这个问题吗?
为了说明这一点:它在dos终端中工作,但在python中失败了!
此外,我还试了另一把钥匙:
reg query HKLM\SOFTWARE\Classes\XML
这一个很管用。我注意到的一件事是,有此问题的密钥已检查并禁用读取权限,而后一个密钥已检查并启用读取权限(可以更改)。
我意识到我以前见过这个问题。。。 解决方案:禁用wow64重定向
将reg更改为%Windir%/sysnative/reg.exe
更重要的是,我用winreg做到了:
相关问题 更多 >
编程相关推荐