19

(大きな)アプリケーションに沿ってインストールされている小さなコンソールアプリケーションがあります。セットアップはInnoSetupで作成され、非常にうまく機能します。

Inno Setupで1つ以上のタスクをWindowsスケジューラー(コンソールアプリを起動する)に追加したい。それを行う方法はありますか?

4

2 に答える 2

19

スクリプトtask scheduler command lineのセクションにエントリを追加するだけです。[Run]そのセクションのエントリは、プログラムが正常にインストールされた後に実行されます。

于 2012-09-03T14:59:37.007 に答える
14

@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インストーラーから実行された動作しないバッチファイルまたはコマンドのデバッグを参照してください。


アンインストールについては、「アンインストール 時にタスクスケジューラを削除しますか? 」を参照してください。

于 2016-10-14T07:08:25.690 に答える