tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: Windowsサービスでのプログレス画面表示
投稿日: 2008/07/16(Wed) 01:10
投稿者魔界の仮面弁士
> 早速ですが、現在Windowsサービスのアプリケーションを作成しているのですが、
> そのアプリの中で、処理の進捗を表示するプログレス画面を表示させたいと思っております。
そもそも、対話形式のサービスの作成については、サポートされていないはずです。
(System.ServiceProcess.ServiceType の項に書かれています)

サービスは、デスクトップに誰もログオンしていない状態でも動き続けますので、
画面は基本的にご法度です。サービスの実行ユーザは、対話モードが許可されていない
場合も多いですから。

このような場合は、
 ・サービス本体
 ・進捗表示のためのツール
という 2 本構成になるでしょう。(たとえば、IIS サービスに対する管理ツールのように)


また最近の OS では、複数のユーザーが同時にデスクトップ画面にログオンすることも
あるため(XP Media Center Edition のファミリログオン機能とか、Server OS への
リモートデスクトップ接続とか)、進捗表示の EXE については、複数同時に
起動される事も考慮する必要があるでしょう。


> つまり、メインの処理とプログレス画面を別スレッドにて表示させたいと思っています。
スレッドではなく、プロセスから分けないと駄目だと思いますよ。


> どなたか良い方法をお教えいただけないでしょうか?
サービスの停止/中断程度なら、System.ServiceProcess.ServiceController クラスで。
より高度な通信が必要ならば、このあたりとか。
http://msdn.microsoft.com/ja-jp/library/5dwytyss%28VS.80%29.aspx

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。