3

HKEY_CURRENT_USERWindows サービスは、ログオンしている各ユーザーのレジストリ キーの下に (Excel アドインの) レジストリ値を作成します(ImpersonateLoggedOnUser()とを呼び出しますRegSetValueEx())。システムのシャットダウンを含め、ユーザーがログオフするときに、このレジストリ値を削除する必要があります。ログオフ時に削除されず、ソフトウェアが 1 人のユーザーによってアンインストールされた場合、レジストリ内のエントリは、サービスの有効期間中にログオンした他のユーザーのために残り、Excel が起動するたびにメッセージ ボックス エラーが表示されます。存在しないアドインをロードしようとしているためです。

以下を検討したが却下した:

  • SetConsoleCtrlHandler()どのユーザーがログオフしているかを示すものがないためです。
  • REG_OPTION_VOLATILEキーを作成するときにのみ有効で、値を作成しているだけなので(十分に調査していないため、キーを作成していても解決しなかった可能性があります)。

これに対する解決策を提供する他のメカニズムはありますか? Windows のバージョンは、XP、Vista、および 7 です。

4

2 に答える 2