0

要件-アプリケーション用にWindows環境で実行したい定期的なタスクがあります。いくつかの基本的な構成(たとえば、URLとそれを実行する頻度)を可能にするシンプルなインターフェースを備えています。マシンの実行中にX時間(構成可能)ごとに実行するようにします。

質問-このためのシステムトレイプレゼンスを使用してアプリケーションを作成するだけですか?または、それにフックする別のUIを持つサービスを作成する必要があります。

ちなみに、私はVisual Studio Expressを使用して開発しているC#の初心者です。覚えておいてください。また、これに不慣れな人に最適な推奨事項の設計の概要を簡単に説明できれば(たとえば、サービスを提案する場合、これは、サービスに1つのアプリケーションが本当に必要であり、別のアプリケーションが必要であることを意味しますか?サービスの構成を行うUIがありますか?)

4

7 に答える 7

3

ユーザーがログオンしていないときに実行する必要がある場合は、サービスが必要です。すべてのユーザーがログオフしたときに実行する必要のないユーザーアプリケーションの場合は、システムトレイアプリケーションで問題ありません。

于 2009-09-15T07:17:51.287 に答える
3

簡単なものを探している場合は、Windows スケジューラを使用してジョブをスケジュールすること、スケジューラがジョブを開始した後にジョブを実行する shim、およびセットアップを可能にする構成ユーティリティを使用することを検討してください。しかし、仕事がどれほど柔軟で信頼できるものであるかを評価することをお勧めします. ジョブが一貫して実行されなくても問題ない場合は、通知領域のユーザー アプリケーションで十分です。しかし、その仕事がビジネスの機能やその他の操作にとって重要な場合は、スケジューラーまたはサービスを使用します。サービスを行う場合、構成ユーティリティと、何らかの手段で通信するサービスが必要になります。config ユーティリティでファイル (おそらく XML 構成ファイル) に書き込み、構成を更新してから、サービスを再起動して構成を更新することができます。

于 2009-09-15T07:15:33.507 に答える
1

私は昨年、そのようなアプリケーションを開発しました。トレイ アイコンだけを持つ単純な Windows フォーム アプリケーション。ユーザーは、コンテキスト メニュー (ユーザーがトレイ アイコンを右クリックすると表示される) からアプリケーションを構成できます。Elapsed イベントを発生させるタイマーを使用しました...

このアプリケーションがタイムリーにいくつかのタスクを実行する唯一の場合は、トレイ アイコンを備えた Windows フォーム アプリを使用します。ただし、入力を送信して何らかのアクティビティをトリガーできる可能性のあるアプリケーションがいくつかある場合は、Windows サービスで共通の機能を移動することを検討する必要があります。アプリケーションがターミナル サービス (複数のユーザー -> アプリの複数のインスタンス) を備えたマシンで実行される場合は、Windows サービスの使用も検討する必要があります。

スケジュールされたタスクは使用しません。ユーザーフレンドリーではありません...

-パベル・ニコロフ

于 2009-09-15T07:30:54.023 に答える
0

メインの処理をWindowsサービスとして作成します。そうしないと、マシンが再起動してログオンしない場合、プロセスがトレイに配置され始めません(したがって、プロセスが実行されません)。または、ダミーのコンソールアプリまたはサイラーを作成し、Windowsスケジューラを介して実行します。また、Windowsサービスでは、クラッシュした場合に自動的に再起動するように構成できます。これは、トレイにあるWindowsアプリケーションでは(簡単に)実行できません。

次に、両方のアプリケーションで使用される共通の構成ファイルに構成を書き込むGUIを備えた2番目のアプリケーションがあります。

于 2009-09-15T07:21:15.897 に答える
0

UIフックを使用してサービスを構築することは、達成しようとしていることに対して非常に複雑に聞こえます。システムトレイアプリケーションはこれにぴったりのように聞こえます、私は間違いなくそのように行きます。

于 2009-09-15T07:13:06.147 に答える
0

アプリケーションのサイズによって異なります。非常に小さい場合は、このソリューションを作成していない場合はトレイに残してください

于 2009-09-15T07:13:51.873 に答える
0

誰もログオンしていなくても、マシンが実行されている X 時間ごとに実行する必要がある場合は、スケジュールされたタスクまたはサービスのいずれかが適切である可能性があります。

ダウンロード間の「デッドタイム」にサービスは何をしますか? 答えが何もない場合、スケジュールされたタスクはほぼ確実に正しいです。スケジュールされたタスクとして実行するコンソール アプリケーションを作成する必要があります。

ユーザー インターフェイスが使用されている場合は、その内容について詳しく知っていれば役に立ちます。

于 2009-09-15T07:16:33.210 に答える