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.