有没有办法,使用c#来监视某个进程添加了哪个注册表项? 对我来说重要的是要知道密钥名称(路径)而不仅仅是密钥的事实 已被添加。 感谢
答案 0 :(得分:0)
以我的拙见,你不能只在C#中这样做。
但是,我可以引导您找到解决方案(但它非常先进)
注册由winapi调用(本机函数)处理。 例如,其中一个是:
[DllImport("advapi32.dll", CharSet = CharSet.Auto, BestFitMapping = false)]
internal static int RegSetValueEx(SafeRegistryHandle hKey, string lpValueName, int Reserved, RegistryValueKind dwType, string lpData, int cbData);
因此,知道进程何时设置注册表值等同于知道何时调用此函数。
您可以使用easy hook注入一个进程并“破解”一个函数(即用您自己的实现替换现有函数)。
您的解决方案是使用此库,挂钩您想要的进程并将RegSetValueEx(在advapi32.dll中)替换为仅将调用转发给实际实现的自定义实现,并在需要时通知您。