RegNotifyChangeKeyValue看起来像粗糙吗?

时间:2010-10-02 08:45:06

标签: winapi registry notify

我一直在使用ReadDirectoryChangesW来监控文件系统的特定部分。它很好地提供了文件或目录的部分路径名,该路径名随着变更性质的线索而改变。这可能会让我感到厌烦。

我还需要监视注册表的特定部分,但看起来好像RegNotifyChangeKeyValue非常粗糙。它会告诉我给定键下的某些东西已更改,但它似乎并不想告诉我这可能是什么。无赖!

有问题的注册表部分是任意深的,所以列举所有子键并为每个子调用RegNotifyChangeKeyValue可能不是一个好主意,因为我最终必须克服{{1 }}。另外,我必须调整我传递给MAXIMUM_WAIT_OBJECTS的密钥集,如果不每次都枚举子密钥,这将是相当大的努力,这将失去相当多的目的

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,是的。您可能必须将所有感兴趣的值缓存到您的代码中,并在获得更改触发器时自行更新此缓存,或者在每个感兴趣的单个数据项上设置多个观察者。正如你所指出的那样,第二种解决方案很快变得笨拙。

如果您可以在.Net中实现所需的代码,则可以通过RegistryEvent and its subclasses更优雅地获得相同的效果。