- - PR -
C#でWindowsサービスアプリケーション(ユーザーインターフェイスあり)の作成
1
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-05 13:10
C#でユーザーインターフェースがあるサービスアプリケーションを作成したいのですが、
「ファイル」→「新規作成」→「プロジェクト」で作成するWindowsサービスでは ユーザーインターフェース付のアプリが作成できないようです。 色々インターネットで検索して探してはいるのですが、 該当するHPが見つかりません。 やはり無理なのでしょうか? | ||||||||||||||||||||
|
投稿日時: 2005-12-05 13:54
無理です。 通常は Windows サービスとそれを制御する GUI アプリケーションは別々に作ります。 | ||||||||||||||||||||
|
投稿日時: 2005-12-05 14:05
こんにちは。
具体的にどんなサービスと、どんなUIが必要なのでしょうか? サービスをやめて、タスクトレイ常駐型アプリにするとかではダメですか? サービスである必要があるのでしたら、 UI部は別プログラムとして作ればいいと思います。 例えば、サービスの設定を行いたいのであれば、レジストリに設定値を書き込むUIを作るとか。 サービスとUIでプロセス間通信をするとか。 UIは、普通のWindowsアプリでもいいでしょうし、 コントロールパネルアプレットを作れば、コントロールパネルから操作することができます。 どうでしょうか? | ||||||||||||||||||||
|
投稿日時: 2005-12-05 14:40
早速のレス、ありがとうございます。
そうですか。無理ですか。 今回なぜサービスにするかというと、 Windowsアプリ(フォルダを監視してファイルが存在したら処理をおこなう。処理の内容が分かるような画面があります。)を スタートアップに入れて、OSが起動するたびに起動されるようにしているのですが、 ターミナルサービスで別PCから接続した際にも、スタートアップに入れているモジュールがまた起動されます。 これを防ぎたく、サービス化することを考えたのですが、無理なようでした。。。 ちなみに、別々に作成するとは、次のような事になりますか? @Windowsアプリ用のプロジェクトを作成し、アプリを作成。 Aサービス用のプロジェクトを作成し、ソース内で@のアプリを呼び出す用にする。 それとも、同一ソリューションにサービス用のプロジェクトとWindowsアプリ用のプロジェクトを追加して作成する。 すみません。あまりよく分かっていません。 よろしくお願いします。 | ||||||||||||||||||||
|
投稿日時: 2005-12-05 16:00
こんにちは。
スミマセン。既存のWindowsアプリの仕様がイマイチよく理解できませんでしたが…
正確に言いますと、スタートアップはOS起動時ではなくユーザーがログインした時点で起動されますね。 サービスですとOS起動時に(ユーザーがログインしなくても)、起動させることができます。
具体的にサービスでおこないたいことは、次のどちらでしょう。 1.既存のWindowsアプリをローカルログイン時のときのみ、起動させるようにしたい。 2.フォルダを監視してファイルが存在したら処理をおこなう。 1.のほうは、なんとなくサービスとしては間違った使い方のような気がします。 2.のほうですと、サービスとUIは次のように機能分解できるでしょうか。 ・サービス:あるフォルダを監視してファイルが、存在したら特定の処理をおこなう。 ・UI:サービスが処理したの内容をモニタする画面
サービスでどのようなことをするつもりなのか分かりませんので、お答えするのが難しいです。
別に”同一ソリューション”でなくても、とくに問題はないでしょう。 サービスとUIが、どのような連携をとるのかが問題だと思います。 | ||||||||||||||||||||
|
投稿日時: 2005-12-06 21:04
多分一番簡単なのは、 サービスでフォルダを監視して処理してログをDBに書き込む。 (時々古いログを消去する) クライアントアプリ(画面)は、そのDBを読み込んで表示する。 という方法かな。 [ メッセージ編集済み 編集者: ジブ 編集日時 2005-12-06 22:58 ] | ||||||||||||||||||||
|
投稿日時: 2005-12-07 10:36
返信が遅くなってスミマセン。
渋木宏明(ひどり)さん、Tdnr_Symさん、ジブさん、返信ありがとうございます。 引用:-------------------------------------------------------------------------- 具体的にサービスでおこないたいことは、次のどちらでしょう。 1.既存のWindowsアプリをローカルログイン時のときのみ、起動させるようにしたい。 2.フォルダを監視してファイルが存在したら処理をおこなう。 1.のほうは、なんとなくサービスとしては間違った使い方のような気がします。 2.のほうですと、サービスとUIは次のように機能分解できるでしょうか。 ・サービス:あるフォルダを監視してファイルが、存在したら特定の処理をおこなう。 ・UI:サービスが処理したの内容をモニタする画面 -------------------------------------------------------------------------------- 確かに、1のやり方だと、ユーザ毎のスタートアップにショートカットをセットするだけで対応できると思うので、サービスにする必要は無いと思いますが。。。 引用:-------------------------------------------------------------------------- サービスでフォルダを監視して処理してログをDBに書き込む。 (時々古いログを消去する) クライアントアプリ(画面)は、そのDBを読み込んで表示する。 -------------------------------------------------------------------------------- う〜ん。もう少し考えて見ます。 色々と、ありがとうございました。 また、色々と質問させて頂くことがあると思いますので その際は、またスミマセンがよろしくお願いいたします。 |
1