Ответ 1
Мое предположение заключается в том, что вы работаете из проекта установки здесь.....
один из способов сделать это - я не говорю, что это лучший, но, возможно, самый простой - это сделать следующее:
На вкладке "Файловая система" щелкните правой кнопкой мыши "Файловая система на целевой машине", "Добавить специальную папку", "Папка запуска пользователя" и такая папка появится в списке. Затем создайте ярлык для вывода вашего проекта (щелкнув правой кнопкой мыши) и перетащите этот ярлык в папку "Автозагрузка".
В конце концов, поскольку вы хотите этого для всех пользователей, перейдите в Свойства проекта развертывания и установите для параметра "InstallAllUsers" значение true.
Теперь есть оговорка в этом подходе, поскольку приложение не запускается при запуске Windows, но когда кто-то входит в систему. Из того, что вы говорите о своем проекте (приложение пользовательского интерфейса), это может быть нормально.
Если вы действительно хотите взломать реестр, вы можете посмотреть создание dll настраиваемого действия. Это то, где вы можете писать в значительной степени то, что вам нравится, и в конце процесса установки программа установки запустится в вашу DLL, чтобы вы могли делать ваши вещи. Вы можете передавать такие объекты, как путь исполняемого файла, в качестве параметра в dll (который вы могли бы выбрать из диалога установщика, а не из какого-либо объекта). Я не буду вдаваться в подробности, так как в Интернете должны быть загружены данные об этом.
Вы должны знать, что в DLL есть конечная информация, которая может быть передана в dll - может быть 256 символов, если память используется. Вы, вероятно, будете в порядке только с путём, но когда вы начнете делать больше....
Что касается определения того, является ли пользователь локальным администратором, это немного сложнее, хотя бы потому, что DLL настраиваемого действия запускается в конце установки, а не в начале, - поэтому вы можете написать код, чтобы узнать в каких группах находится текущий пользователь, но, скорее всего, вы взорвали бы до того, как этот код мог работать. Я не верю в проект Microsoft Setup, по крайней мере, что это можно узнать.