(大きな)アプリケーションに沿ってインストールされている小さなコンソールアプリケーションがあります。セットアップはInnoSetupで作成され、非常にうまく機能します。
Inno Setupで1つ以上のタスクをWindowsスケジューラー(コンソールアプリを起動する)に追加したい。それを行う方法はありますか?
(大きな)アプリケーションに沿ってインストールされている小さなコンソールアプリケーションがあります。セットアップはInnoSetupで作成され、非常にうまく機能します。
Inno Setupで1つ以上のタスクをWindowsスケジューラー(コンソールアプリを起動する)に追加したい。それを行う方法はありますか?
スクリプトtask scheduler command line
のセクションにエントリを追加するだけです。[Run]
そのセクションのエントリは、プログラムが正常にインストールされた後に実行されます。
@TLamaの答えよりも具体的な例を示すには:
たとえば、1時間ごとにいくつかのパラメータを使用してアプリケーションを実行するタスクをスケジュールするには、次を使用します。
[Run]
Filename: "schtasks"; \
Parameters: "/Create /F /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1"""; \
Flags: runhidden
ノート:
/F
スイッチ(再インストール/アップグレードにとって重要)。schtasks.exe
コマンドと[Run]
セクションの完全なドキュメントを参照してください。
動作しないタスクの作成をデバッグする場合は、で開始schtasks
しますcmd.exe /K
(もちろん、runhidden
フラグを削除します)。
[Run]
Filename: "{cmd}"; \
Parameters: "/K schtasks /F /Create /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1""";
このようにして、エラーメッセージのあるコンソールウィンドウが保持されます。
InnoSetupインストーラーから実行された動作しないバッチファイルまたはコマンドのデバッグを参照してください。
アンインストールについては、「アンインストール 時にタスクスケジューラを削除しますか? 」を参照してください。