2012-09-03 135 views
10

私の(より大きな)アプリケーションにインストールされている小さなコンソールアプリケーションがあります。設定はInno Setupで作成され、非常にうまく動作します。Inno Setupでスケジュールされたタスクを追加する方法

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

おかげで、事前に

答えて

11

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

[Run] 
Filename: "schtasks"; \ 
    Parameters: "/Create /F /SC HOURLY /TN ""My Task"" /TR ""'{app}\MyProg.exe' par1"""; \ 
    Flags: runhidden 

注:

例えば、いくつかのパラメータを指定して毎時間、使用するアプリケーションを実行するタスクをスケジュールする

+5

ありがとうTLama!私はそれが簡単だろうとは知らなかった。これはInnoスクリプトに追加した行です:[実行]ファイル名:schtasks.exe;パラメータ: "/ create/tn" ESS pushdata "/ tr {app} \ pushdata.exe/sc daily" –

+0

喜んで;-) – TLama

+0

もちろん、タスクスケジューラのコマンドラインは完全に使用できません。 acceptsはロケールに依存するため、英語以外のWindowsを使用している場合、コマンドラインが壊れる可能性があります。 –

1

は@ TLamaの答えよりもより具体的な例を与えるために、
  • double double-quotesコマンドライン(およびタスク名)とアプリケーションのパスを囲む一重引用符を囲みます。
  • /Fは、既存のタスクをすべて同じ名前で上書きします(再インストール/アップグレードで重要です)。

Schtasks.exe command[Run] sectionの詳細なドキュメントを参照してください。


あなたはcmd.exe /Kschtasksを開始し(そしてもちろん、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を参照してください。

関連する問題