私の(より大きな)アプリケーションにインストールされている小さなコンソールアプリケーションがあります。設定はInno Setupで作成され、非常にうまく動作します。Inno Setupでスケジュールされたタスクを追加する方法
Windowsのスケジューラ(コンソールアプリケーションを起動する)に1つ以上のタスクを追加したい。それを行う方法はありますか?
おかげで、事前に
私の(より大きな)アプリケーションにインストールされている小さなコンソールアプリケーションがあります。設定はInno Setupで作成され、非常にうまく動作します。Inno Setupでスケジュールされたタスクを追加する方法
Windowsのスケジューラ(コンソールアプリケーションを起動する)に1つ以上のタスクを追加したい。それを行う方法はありますか?
おかげで、事前に
は、単にあなたのスクリプトの[Run]
セクションにtask scheduler command line
エントリを追加します。そのセクションのエントリは、プログラムが正常にインストールされた後に実行されます。
[Run]
Filename: "schtasks"; \
Parameters: "/Create /F /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1"""; \
Flags: runhidden
注:
例えば、いくつかのパラメータを指定して毎時間、使用するアプリケーションを実行するタスクをスケジュールする:
/F
は、既存のタスクをすべて同じ名前で上書きします(再インストール/アップグレードで重要です)。Schtasks.exe
commandと[Run]
sectionの詳細なドキュメントを参照してください。
あなたはcmd.exe /K
とschtasks
を開始し(そしてもちろん、runhidden
フラグを削除)、非作業タスクの作成をデバッグしたいときは:
[Run]
Filename: "{cmd}"; \
Parameters: "/K schtasks /F /Create /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1""";
この方法でコンソールウィンドウをとエラーメッセージは保存されます。
Debugging non-working batch file executed from Inno Setup installerを参照してください。
ありがとうTLama!私はそれが簡単だろうとは知らなかった。これはInnoスクリプトに追加した行です:[実行]ファイル名:schtasks.exe;パラメータ: "/ create/tn" ESS pushdata "/ tr {app} \ pushdata.exe/sc daily" –
喜んで;-) – TLama
もちろん、タスクスケジューラのコマンドラインは完全に使用できません。 acceptsはロケールに依存するため、英語以外のWindowsを使用している場合、コマンドラインが壊れる可能性があります。 –