私のアプリケーションには、更新するメイン アプリケーションと同じフォルダにある「updater.exe」という別のアプリを介した組み込みの自己更新システムがあります。最新バージョンをダウンロードし、古いバージョンを終了し (実行中の場合)、上書きします。
問題は、updater.exe にアクセスするには、管理者権限で updater.exe を実行する必要があることです。C:\Program Files\MyApp
これまでのところ、メイン アプリは管理者権限で (UAC を使用して) updater.exe を実行しますが、問題が発生します。
アップデート完了後、新しくインストールしたバージョンを自動で起動させたい。何だと思う?もちろん、メインアプリも管理者権限で実行されます。シナリオは単純です:
Main app[running as user] --> Updater App[run as admin] --> Main app[ADMIN again]
私のアプリケーションがMy.Settings
オブジェクトを使用しているという理由だけで、管理者として実行すると、保存されているすべての設定が失われます。これは、通常、通常は常に通常のユーザーとして開始され、ご存知のようにMy.Settings
オブジェクトuser-sensivite
であるためです。
このような問題を修正するにはどうすればよいですか? 検索しましたが、「通常のユーザーとして実行」に関連するものは見つかりませんでしたが、常に管理者として実行されているため、非常に簡単です。
一方、正直なところ、アップデータ アプリはどのユーザーがそれを開始したかを知ることができないため、そのようなことはあり得ないと思います。それともできますか?私がここに欠けているものはありますか?
私が正しければ、My.Settings を使用せずに Windows レジストリを使用してユーザー設定を保存する唯一のオプションですか?
今までありがとう。