Запустите дочерний процесс без повышенных прав из процесса повышенных прав / от имени администратора

Мое приложение имеет встроенную систему самообновления через другое приложение, называемое "updater.exe", которое находится в одной папке с основным приложением для обновления. Он загружает самую новую версию, завершает работу старой (если она запущена) и затем перезаписывает ее.

Проблема заключается в том, что для того, чтобы иметь доступ кC:\Program Files\MyApp

Пока все хорошо, главное приложение запускает Updater.exe с правами администратора (используя UAC), но затем возникает проблема:

После завершения обновления я хочу, чтобы новая установленная версия запускалась автоматически. Угадай, что? Конечно, главное приложение работает с правами администратора. Сценарий прост:

Main app[running as user] --> Updater App[run as admin] --> Main app[ADMIN again]

Просто потому, что мое приложение используетMy.Settings объект, он теряет все сохраненные настройки при запуске от имени администратора, потому что обычно он всегда запускается как обычный пользователь и, как вы, возможно, знаете,My.Settings являетсяuser-sensivite объект.

Как я могу исправить такую ​​проблему? Я искал вокруг, но не смог найти ничего, связанного с «Запуск от имени обычного пользователя», но всегда запускался от имени администратора, что довольно легко.

Ну, честно говоря, с другой стороны, я не думаю, что такое могло бы быть возможным, потому что приложение для обновления не может знать, какой именно пользователь его запустил. Или это может? Есть что-то, чего я здесь не хватает?

Если я прав, это единственный вариант НЕ использовать My.Settings, но реестр Windows для хранения пользовательских настроек?

Спасибо, сейчас.

Ответы на вопрос(1)

Ваш ответ на вопрос