繁体   English   中英

使用WMI监视注册表中的GAC更改-RegistryKeyChangeEvent GACChangeNotification找不到

[英]Monitor GAC changes in registry with WMI - RegistryKeyChangeEvent GACChangeNotification Not Found

我正在尝试使用WMI监视注册表中对GAC的更改。 我有以下代码:

WqlEventQuery query = new WqlEventQuery(@"SELECT * FROM RegistryKeyChangeEvent WHERE Hive = 'HKEY_LOCAL_MACHINE' AND KeyPath='SOFTWARE\\Microsoft\\Fusion\\GACChangeNotification\\Default'");
_regWatcher = new ManagementEventWatcher(query);
_regWatcher.EventArrived += new EventArrivedEventHandler(_regWatcher_EventArrived);
_regWatcher.Start();

但是,当它调用Start()时,将导致管理异常,并显示消息“未找到”。 我从注册表复制了密钥路径,因此我知道它存在。 我以前从未做过,所以也许我滥用了它。 我希望在“默认”键中更改任何值时收到通知(特别是在添加值时)。 为什么会出现“未找到”异常,以及如何使用WMI正确监视此密钥的更改?

您肯定是Windows 64位版本中注册表重定向器的另一个受害者。 在“项目+属性”的“构建”选项卡上,将“平台目标”设置从x86更改为AnyCPU。 在VS2012及更高版本上,取消选中“首选32位”复选框。

您的程序现在将作为64位进程,并且可以正确看到注册表项。 您之前没有尝试查看HKLM \\ Software \\ Wow6432Node子项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM