Inno Setup, запуск приложения при запуске windows
Для Установки Инно, Я хотел бы создать задачу флажка для автоматического запуска MyAPP при запуске Windows. Мой код, как показано ниже :
и, как написать коды ниже-DO_Set_AutoStart_WhenWindowsStart() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[Tasks]
Name: "StartMenuEntry" ; Description: "Start my app when Windows starts" ; GroupDescription: "Windows Startup"; MinVersion: 4,4;
[code]
//Do Additional Task - Auto Start when Windows Start
function NextButtonClick(CurPageID: Integer): Boolean;
var
Index: Integer;
begin
Result := True;
if CurPageID = wpSelectTasks then
begin
Index := WizardForm.TasksList.Items.IndexOf('Start my app when Windows starts');
if Index <> -1 then
begin
if WizardForm.TasksList.Checked[Index] then
MsgBox('First task has been checked.', mbInformation, MB_OK)
DO_Set_AutoStart_WhenWindowsStart();
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
else
MsgBox('First task has NOT been checked.', mbInformation, MB_OK);
end;
end;
end;
1 ответов
вам не нужно использовать [код] для добавления автоматического запуска приложения.
есть разные способы сделать это, например
[icons]
Name: "{userstartup}\My Program"; Filename: "{app}\MyProg.exe"; Tasks:StartMenuEntry;
Name: "{commonstartup}\My Program"; Filename: "{app}\MyProg.exe"; Tasks:StartMenuEntry;
разница между {userstartup} и {commonstartup}, если не очевидна, заключается в том, что {userstartup} влияет на запись меню запуска для текущего пользователя и {commonstartup} влияет на всех пользователей целевой машины.
редактировать
вы также можете использовать реестр для запуска приложения. Я добавляю это, потому что OP, упомянутый в комментариях, описанный метод не работает в windows 8 (из-за отсутствия меню "Пуск", которое я забыл). У меня нет Windows 8 под рукой, чтобы проверить, так это до вас, чтобы проверить, если это работает на Windows 8 или нет.
на запустить ключи в реестре существует с WinXP, поэтому вы можете настроить windows для автоматического запуска программы из установщика, добавив что-то вроде этого:
[Registry]
;current user only
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProgram"; ValueData: "{app}\MyProg.exe"; Tasks:AutoRunRegistry;
;any user
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProgram"; ValueData: "{app}\MyProg.exe"; Tasks:AutoRunRegistry;
не мисс я также меняю Tasks
параметр в примере для AutoRunRegistry
.