12

Inno Setup の場合、Windows の起動時に MyAPP Auto Start のチェックボックス タスクを作成したいと思います。以下のような私のコード:

そして、以下のコードの書き方 - 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;
4

1 に答える 1

20

[code]セクションを使用して自動起動アプリを追加する必要はありません。

これを実現するにはさまざまな方法があります。たとえば、

[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で機能するかどうかをテストするのはあなた次第です.

レジストリのRun キーは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

于 2012-11-06T07:34:53.553 に答える