Windows の起動時にのみ、現在のユーザーに対していくつかのアプリケーションを起動しようとしています。
次の方法でこれを達成できます。
RegistryKey oKey = Registry.CurrentUser.OpenSubKey("Software", true);
oKey = oKey.OpenSubKey("Microsoft", true);
oKey = oKey.OpenSubKey("Windows", true);
oKey = oKey.OpenSubKey("CurrentVersion", true);
oKey = oKey.OpenSubKey("Run", true);
oKey.SetValue("Application 1", "C:\\path\\to\\ap1.exe");
oKey.SetValue("Application 2", "C:\\path\\to\\ap2.exe");
しかし、これを Visual Studio インストーラー プロジェクトの一部として実行しようとしています。カスタム アクションを追加しました。プログラムは正常に起動し、インストーラーは XP でうまく動作します。
Windows 7 では、インストーラーは昇格された特権を取得し、現在のユーザーのレジストリにエントリを挿入する以外はすべて実行します。ただし、スタンドアロン アプリケーションとして (インストーラー プロジェクトの外部で) 実行すると、レジストリ エントリが挿入され、昇格された特権は取得されません。
私が理解できる唯一のことは、昇格された特権で、現在のユーザーではなく管理者アカウントにエントリを挿入しようとしていることです? または、私が見逃しているものは他にありますか?ここで私の目標を達成できる別の方法はありますか?