有没有办法跟踪 Windows 注册表的更改?我想在安装各种程序时查看注册表中的更改。
Process Monitor(进程监视器) 能够监控各个进程的文件和注册表活动。
可以监视特定程序所做的注册表更改。
https://www.nirsoft.net/utils/reg_file_from_application.html
更新:只需下载 NirLauncher(其中包括 NirSoft 的所有应用程序)。它是您的 Windows 工具箱中最好的增强功能之一。 https://launcher.nirsoft.net/
RegistryChangesView
(https://www.nirsoft.net/utils/registry_changes_view.html)更加有用:它创建了两个快照(例如,安装前和安装后),然后进行比较。结果可以导出为`.txt`文件。在我的使用情况下,它发现了301个应用程序安装后的注册表变更。与此同时,附加到`msiexec.exe`进程的`RegFromApp`仅发现1个变更。 - and1er因此,使用WMI监视注册表是可行的,但并不完美。优点是可以实时监视更改。另一个优点可能是WMI永久事件订阅:
这是一种在“始终”情况下监视注册表的方法,即使您的应用程序未运行也可以进行监视。
一种没有额外工具的简单方法是在安装前将注册表导出到文本文件,然后再将其导出到另一个文件中。然后,比较这两个文件。
话虽如此,Sysinternals 工具也非常适合这个任务。
HKLM\SYSTEM
或HKLM\SOFTWARE
有几种不同的方法。如果你想在运行时自己完成,WMI可能是最好的选择。RegistryKeyChangeEvent
及其相关类是需要关注的。也许还可以通过__InstanceCreationEvent
、__InstanceDeletionEvent
和__InstanceModificationEvent
类来监视它。
http://msdn.microsoft.com/en-us/library/aa393040(VS.85).aspx