C++ 使用C++;

C++ 使用C++;,c++,winapi,registry,monitor,C++,Winapi,Registry,Monitor,每当安装或删除应用程序时,我想监控注册表中的某个项何时被更改/添加/删除。我已经测试了msdn()中的示例代码,它运行良好 但问题是,它并没有告诉我哪个密钥实际上被修改/添加/删除了。用C++ + 如何检索这些信息只有3种方式,没有一种既简单又充分: : 不会提供您需要的信息,但非常易于使用 哪一个是 这就是它的用途。它工作得很好,但很难使用。 我自己也不知道如何使用它,但如果我弄明白了,我会把它贴在这里 : 需要内核模式驱动程序,这是64位的难题。 但除此之外,这是最完美的解决方案 不幸的

每当安装或删除应用程序时,我想监控注册表中的某个项何时被更改/添加/删除。我已经测试了msdn()中的示例代码,它运行良好


但问题是,它并没有告诉我哪个密钥实际上被修改/添加/删除了。用C++ +

如何检索这些信息只有3种方式,没有一种既简单又充分:

  • : 不会提供您需要的信息,但非常易于使用

  • 哪一个是 这就是它的用途。它工作得很好,但很难使用。
    我自己也不知道如何使用它,但如果我弄明白了,我会把它贴在这里

  • : 需要内核模式驱动程序,这是64位的难题。
    但除此之外,这是最完美的解决方案


    • 不幸的是,Windows事件跟踪(EWT)不允许在事件中看到完整的密钥路径。您只得到一个部分键名和一个奇怪的句柄,实际上是一个键控制块。从这个区块获取信息并不是那么简单。 是的,进程监视器使用EWT,但它不使用Windows内核跟踪作为提供程序。

      旁注:“CmRegisterCallback例程对于Windows Vista和更高版本的操作系统已过时。请改用。”有关使用ETW时如何发现完整的密钥名,请参阅。