我一直在使用ReadDirectoryChangesW
来监控文件系统的特定部分。它很好地提供了文件或目录的部分路径名,该路径名随着变更性质的线索而改变。这可能会让我感到厌烦。
我还需要监视注册表的特定部分,但看起来好像RegNotifyChangeKeyValue
非常粗糙。它会告诉我给定键下的某些东西已更改,但它似乎并不想告诉我这可能是什么。无赖!
有问题的注册表部分是任意深的,所以列举所有子键并为每个子调用RegNotifyChangeKeyValue
可能不是一个好主意,因为我最终必须克服{{1 }}。另外,我必须调整我传递给MAXIMUM_WAIT_OBJECTS
的密钥集,如果不每次都枚举子密钥,这将是相当大的努力,这将失去相当多的目的
有什么想法吗?
答案 0 :(得分:1)
不幸的是,是的。您可能必须将所有感兴趣的值缓存到您的代码中,并在获得更改触发器时自行更新此缓存,或者在每个感兴趣的单个数据项上设置多个观察者。正如你所指出的那样,第二种解决方案很快变得笨拙。
如果您可以在.Net中实现所需的代码,则可以通过RegistryEvent and its subclasses更优雅地获得相同的效果。