我有一个 BHO,它在第一次运行时正在收集激活信息并将其存储在注册表中。
(我认为)由于 IE 的许可,我只能将其存储在注册表分支中
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\InternetRegistry\REGISTRY\USER\S-0-0-00-000000000-000000000-000000000-0000\Software\MyBHO\MyKey
其中 S-0-0-00-000000000-000000000-000000000-0000 是每个用户的唯一密钥。
RegCreateKey()
使用with很好"Software\MyBHO\MyKey"
。这一切都是创建和运行的可爱。它可以毫无问题地确定在空间中存储密钥的位置。
问题:
当我执行卸载时,我想删除这个密钥,因为它是在 IE 之外运行的,所以我无法确定该密钥在哪里/用户字符串是什么。
我想到的选项:
选项 1(理想)首先找出此用户字符串,然后为我希望删除的密钥构建一个新路径并将其删除。如何?
选项 2 在激活点将密钥的路径存储在另一个可以访问的注册表值中。然后读取并删除两者(这似乎有点倒退,并且可能由于注册表上 BHO 的访问限制而无法工作(因此首先将其写入那里))
您是否知道是否有任何方法可以找到此用户密钥,甚至如何找到父目录。
编辑经过继续研究,我发现我所说的“用户密钥”是当前用户的“SID”。也许这会给我带来更好的结果。