2012-04-07 27 views
2

私のアプリケーションでは、深夜0時に再起動が必要です。この仕事のために、私によれば、タスクスケジューラは理想的なものですが、私はC#でタスクスケジューラAPIを使用する方法を見つけることができませんでした(外部ライブラリが使用されません)WindowsのタスクスケジューラC#

タスクスケジューラからのアプリケーションが完了しました。また、特定の時間にアプリケーションを自動的にシャットダウンする方法も提案されました。(特定の時間にアプリケーションが応答しない、何らかのエラーメッセージボックスを表示する、または何らかの問題のために動作しない場合でも)

答えて

3

まあ、あなたはschtasksコマンドについて知らないと思います。
コマンドプロンプトを開いてschtasks /?と入力すると、利用可能なオプションが表示されます。
ここに必要なものは/createです。もちろん、このオプションは、スケジュールされたタスクを設定するために一連のパラメータを必要とします。しかし、最後に、あなたがすべての呼び出し解決することができます:クローズ処理の一部について

Process.Start("schtasks", commandParams); 

を、私はMicrosoftのマークRussinovich氏からSysinternals suiteで見つかったpskillと呼ばれる小さなユーティリティを使用します。また、スケジュールされたタスクとしてバッチファイルセット内で呼び出すこともできます。

EDIT:pskillするpsshutdownから変更(?あなたが唯一のアプリの右を閉じる必要があります)

+0

返信ありがとうございます。このタスクを手動でコマンドラインで設定しようとしましたが、管理者として 'cmd'を実行した後、このタスクを作成することができました。' schtasks/create/tn "MyApp"/tr c:\ app.exe/sc on start 'タスクが正常に作成されました。どうやら、私のアプリは実行するために管理者権限を必要とし、私はコンピュータを再起動すると、アプリは実行されませんでした。私はschticks/queryでチェックし、MyAppのステータスは「開始できませんでした」と表示されました。これに対する提案はありますか? – user1240679

+0

私はそれがこの管理者権限のためだとは思わない。私はadminのpreviligesを必要としない別のシンプルなアプリを試しましたが、再起動後にschtasks/queryをチェックインしたときに 'Could not start'というステータスが与えられました。 – user1240679

+0

タスクをログオンに変更しましたが、今は正常に動作しています。 :-) – user1240679

2

私はあなたがこれを処理するサービスを記述し示唆しています。また、はなぜ再起動する必要がありますか

しかし、あなたは使用タスクスケジューラなければならない場合は、このようにそれを試してみてください。

schtasks /create /SC DAILY /TN AppName /TR AppExecutablePath /ST 0 
0:00 /ET TIMEFORENDTASK 

あなたは、単にバッチスクリプトでこれを入力すると、ユーザーがアプリをインストールしたとき、バッチスクリプトを実行し、その後に置くことができますこれは、アンインストールバッチスクリプト:

schtasks /delete /TN AppName 
+0

お返事ありがとうございます。私はこのタスクを手動でコマンドラインからschtasks'コマンドを使って手動で設定しようとしましたが、cmdを管理者として実行した後、schtasks/create/tn "MyApp"/tr c:\ app.exe/scのタスクを作成できました。タスクが正常に作成されました。どうやら、私のアプリは実行するために管理者権限を必要とし、私はコンピュータを再起動すると、アプリは実行されませんでした。私はschticks/queryでチェックし、MyAppのステータスは「開始できませんでした」と表示されました。これに対する提案はありますか? – user1240679

+0

おそらく、管理者のユーザー名とパスワードを渡す必要があります。フラグ/ U/Pと/ RUを参照してください – Steve

+0

私はこの管理者権限のためだとは思わない。私はadminのpreviligesを必要としない別のシンプルなアプリを試しましたが、再起動後にschtasks/queryをチェックインしたときに 'Could not start'というステータスが与えられました。 – user1240679

関連する問題