HKEY_CURRENT_USER
Windows サービスは、ログオンしている各ユーザーのレジストリ キーの下に (Excel アドインの) レジストリ値を作成します(ImpersonateLoggedOnUser()
とを呼び出しますRegSetValueEx()
)。システムのシャットダウンを含め、ユーザーがログオフするときに、このレジストリ値を削除する必要があります。ログオフ時に削除されず、ソフトウェアが 1 人のユーザーによってアンインストールされた場合、レジストリ内のエントリは、サービスの有効期間中にログオンした他のユーザーのために残り、Excel が起動するたびにメッセージ ボックス エラーが表示されます。存在しないアドインをロードしようとしているためです。
以下を検討したが却下した:
SetConsoleCtrlHandler()
どのユーザーがログオフしているかを示すものがないためです。REG_OPTION_VOLATILE
キーを作成するときにのみ有効で、値を作成しているだけなので(十分に調査していないため、キーを作成していても解決しなかった可能性があります)。
これに対する解決策を提供する他のメカニズムはありますか? Windows のバージョンは、XP、Vista、および 7 です。