问题中的路径不包括在用户级别安装的应用程序。
它们在同一个位置,但在下面HKEY_CURRENT_USER
而不是HKEY_LOCAL_MACHINE
.
所以总的来说:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
但正如您所知,HKEY_CURRENT_USER
仅适用于当前用户。
要访问所有用户,请访问HKEY_USERS
注册表根目录,其中每个用户都有一个文件夹。
因此,您需要:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
for each user sid under HKEY_USERS:
HKEY_USERS\<user sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_USERS\<user sid>\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
PS 如果你想匹配用户的 SID 和它的名字,你可以查找HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<user sid>
key named ProfileImagePath
,它应该等于C:\Users\<user name>
。不是所有用户都有这个键,我认为这些是系统用户或者你不想碰的东西。