【WPF】Windowsのタスクスケジューラにタスクを登録する

2017年10月7日C#,開発

おはようございます。

Windows のソフトであれば、
タスクスケジューラを使って何かしたいってこと、あると思います。

のでやってみました。

プログラムは前回のものを流用します。

スポンサーリンク

参照の追加

プログラムからタスクスケジューラを操作するためのライブラリを追加します。

参照の追加
参照の追加

パッケージ・エクスプローラーの「参照」を右クリックし「参照の追加」を選択します。

ライブラリ追加
ライブラリ追加

「COM」を選択し、「task」でフィルタリング、
「TaskScheduler 1.1 Type Library」にチェックをして「OK」ボタンをクリックします。

新規クラス作成

タスク登録用のクラスを追加します。

クラス追加
クラス追加

パッケージ・エクスプローラーでプロジェクトを右クリック、
「追加」>「クラス」を選択します。

クラス名の入力
クラス名の入力

名前に「TaskManager.cs」と入力して「追加」ボタンをクリックします。

TaskManager.cs

今回は単純に起動してから
60分(1時間)毎に繰り返し実行するタスクを登録するようにしました。

トリガーの種類

 

インターフェース説明
IEventTriggerシステムイベントが発生したタイミングで開始する
ITimeTrigger特定の日時に開始する
IDailyTrigger日次スケジュールに基づいてタスクを開始するタスクは毎日、1日おき、3日おきなど特定の時刻に開始されます。
IWeeklyTrigger週単位のスケジュールに基づいてタスクを開始する
IMonthlyTrigger毎月のスケジュールに基づいてタスクを開始する
IMonthlyDOWTrigger月曜日の曜日スケジュールでタスクを開始する
IIdleTriggerコンピュータがアイドル状態になったときにタスクを開始する
IRegistrationTriggerタスクが登録されたときにタスクを開始する
IBootTriggerシステムの起動時にタスクを開始する
ILogonTriggerユーザーがログオンしたときにタスクを開始する
ISessionStateChangeTriggerコンソールの接続または切断、リモート接続または切断、またはワークステーションのロックまたはロック解除通知のタスクをトリガーします

各トリガーの使用方法は長くなるので割愛させてください。

プログラム修正

起動時にタスク登録を実行する

コンストラクタに次の記述を追加します。

MainWindow.xaml.cs

実行するバッチの配置

下記のファイルを作成し、実行フォルダに配置します。

taskSample.bat

taskSample.vbs

 

起動してみる

タスクスケジューラ
タスクスケジューラ

タスクスケジューラ―を起動すると、
無事にタスクが登録されているのが確認できました。

今回はここまで。

ではでは。

スポンサーリンク


関連するコンテンツ

2017年10月7日C#,開発WPF,プログラミング

Posted by doradora