4

私のアプリケーションは、毎日午前 0 時に再起動する必要があります。この仕事には、タスク スケジューラを使用するのが理想的ですが、C# でタスク スケジューラ API を使用する方法を見つけることができませんでした (使用する外部ライブラリはありません)。

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

4

2 に答える 2

4

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

Process.Start("schtasks", commandParams);

クローズ プロセスの部分については、Microsoft の Mark Russinovich のSysinternals スイートpskillにある、小さなユーティリティを使用します。また、これは、スケジュールされたタスクとして設定されたバッチ ファイル内で呼び出すこともできます。

編集: psshutdown から pskill に変更されました (アプリだけを閉じる必要がありますか?)

于 2012-04-07T08:02:25.263 に答える
3

これを処理するサービスを作成することをお勧めします。また、なぜ再起動が必要なのですか?

ただし、タスク スケジューラを使用する必要がある場合は、次のように試してください。

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

これをバッチ スクリプトに入力し、ユーザーがアプリをインストールするときにバッチ スクリプトを実行してから、これをアンインストール バッチ スクリプトに入れるだけです。

schtasks /delete /TN AppName
于 2012-04-07T08:51:55.610 に答える