Inno Setup - как я могу запустить мою программу, когда пользователь входит в Windows? - PullRequest
11 голосов
/ 20 сентября 2011

Я хочу использовать Inno Setup (http://www.jrsoftware.org/isfaq.php) для создания установщика для приложения.

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

Как настроить Inno Setup на запуск программы при входе пользователя в систему?

Ответы [ 2 ]

30 голосов
/ 21 сентября 2011

Положите ярлык в папку автозагрузки профиля All Users. См. Статью базы знаний " Создание ярлыков в группе автозагрузки (или автозапуск) ", которая включает в себя приведенный ниже пример:

[Setup]
PrivilegesRequired=admin

[Icons] 
Name: "{commonstartup}\My Program"; Filename: "{app}\MyProg.exe"

Если вы хотите, чтобы программа запускалась только тогда, когда пользователь, установивший программу, войдет в систему, используйте {userstartup} вместо {commonstartup}. В этом случае права администратора не требуются.


Или, если вы решите написать в системный ключ реестра «Run» ( kb article ):

[Registry]
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProg"; ValueData: """{app}\MyProg.exe"""; Flags: uninsdeletevalue

Если вы используете 'HKLM', снова требуются права администратора.

1 голос
/ 27 октября 2014

Может быть, это было бы полезно для кого-то ...

Я столкнулся с некоторыми проблемами в Windows 8 при попытке создать установку, которая автоматически помещала бы ключ реестра автозапуска, такой как:

Root: "HKCU"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NHMMNAS"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue

для запуска моего 32-разрядного приложения .NET при каждом запуске Windows.Случилось так, что для 32-битного приложения потребовалась небольшая модификация, которая заменяла Root: "HKCU" на Root: "HKCU32", поэтому запись в скрипте установки была:

Root: "HKCU32"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NHMMNAS"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue

После добавления строки и переустановки мое приложение запустилосьпри запуске системы без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...