タイトル : 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 |