草庐IT

RegNotifyChangeKeyValue

全部标签

windows - 取消 RegNotifyChangeKeyValue 的正确方法是什么?

RegNotifyChangeKeyValue的异步使用非常简单:向其传递一个事件对象并等待事件发出信号。然而,不太清楚的是取消通知请求的正确方法。例如,如果像这样在等待时设置了超时:RegNotifyChangeKeyValue(hKey,false,REG_NOTIFY_CHANGE_LAST_SET,regEvent.SafeWaitHandle,true);regEvent.WaitOne(TimeSpan.FromMinutes(30))如果在没有触发通知的情况下发生超时,则该通知可能处于未决状态并等待触发。如果通知和等待在一个循环中,情况会更糟,可能会注册许多通知(每个过期

c++ - 如何判断哪个值触发了 RegNotifyChangeKeyValue?

我正在使用RegNotifyChangeKeyValue用于跟踪对我的注册表项和C++示例的更改的API,类似于该MSDN页面底部给出的示例。我将此API设置为:RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"Software\\Company\\Product",0,KEY_NOTIFY,&hKey);RegNotifyChangeKeyValue(hKey,FALSE,REG_NOTIFY_CHANGE_LAST_SET,hEvent,TRUE);所以,比如说,当这个API作为参数的事件发出信号时(这意味着对Software\Company\Product键的更

windows - 使用 RegNotifyChangeKeyValue 监视对 64 位 key 的更改

我正在尝试使用RegNotifyChangeKeyValue来监视64位注册表项的更改。要从32位应用程序打开此key,我们必须添加访问标志KEY_WOW64_64KEY。不幸的是,我似乎无法监控对此key的更改,只有它是32位对应项。我包括一个演示项目以及我用来实现注册表监控的单元。在这里下载:RegMonitor重现问题的步骤:编译程序。以管理员身份运行它。单击“开始”按钮。打开regedit并导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run在那里添加一个新值。RegMonitor不会检测到任何变