最初の実行時にアクティベーション情報を収集し、これをレジストリに保存する 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()
しても問題ありません"Software\MyBHO\MyKey"
。それはすべて作成され、素敵に実行されています。問題なくキーを格納する空間の場所を決定します。
問題:
アンインストールを実行するときにこのキーを削除したいのですが、これは IE の外部で実行されるため、そのキーがどこにあるのか、ユーザー文字列が何なのかを判断する方法がありません。
私が考えているオプション:
オプション 1 (理想) 最初にこのユーザー文字列を見つけてから、削除したいキーの新しいパスを作成して削除します。どのように?
オプション 2 アクティベーションの時点で、アクセス可能な別のレジストリ値にキーへのパスを保存します。次に、両方を読み取り、削除します(レジストリのBHOのアクセス制限により、おそらく機能しないと思われます(したがって、最初にそこに書き込まれます))
このユーザーキーを見つける方法、または親ディレクトリを見つける方法さえあるかどうか知っていますか。
編集継続的な調査の結果、「ユーザーキー」と呼んでいるものは現在のユーザーの「SID」であることがわかりました。多分これは私により良い結果をもたらすでしょう。