サービスの名前プロパティ
サービス アプリケーション への移動
VCL には、Windows プラットフォームで動作するサービス アプリケーションを作成するためのクラスが用意されています(サービス アプリケーションはクロスプラットフォーム アプリケーションで利用できません。これらのクラスには、TService と TDependency があります。これらのクラスを使用する際には、多様な名前のプロパティがあるため、混乱しがちです。このトピックでは、この違いについて説明します。
サービスには、パスワードと関連づけられるユーザー名(サービス スタート名、と呼ばれる)と、マネージャやエディタ ウィンドウに表示される表示名、それに実際の名前(サービスの名前)があります。依存関係はサービス間や、ロード順のグループ間での場合があります。これらにもまた、名前と表示名があります。サービス オブジェクトは TComponent を継承しているため、Name プロパティも継承するからです。次のセクションでは、名前プロパティを概説します。
TDependency プロパティ
TDependency の DisplayName は、サービスの表示名と実名の両方を表します。多くの場合、これらは TDependency の Name プロパティと同じになります。
TService 名前プロパティ
TService の Name プロパティは、TComponent から継承します。これはコンポーネントの名前で、サービスの名前でもあります。サービス間の依存関係のため、このプロパティは TDependency の Name および DisplayName プロパティと同じになります。
TService::Name
、TDependency::DisplayName
、TDependency::Name
)。Dependency の DisplayName と Service の DisplayName は通常異なる点に注意してください。TService の DisplayName は、サービス マネージャ ウィンドウに表示される名前です。 これはよく実際のサービス名とは異なります(TService::Name、TDependency::DisplayName、TDependency::Name)。 Dependency の DisplayName と Service の DisplayName は通常異なる点に注意してください。
サービス スタート名は、サービスの表示名および実名の両方ととも区別されます。ServiceStartName は、[スタート]ダイアログにサービス コントロール マネージャから選択して入力される、ユーザー名です。
sc create MyTestService binPath = C:\Temp\ATestSrvc.exe DisplayName = ATest
です。このとき、MyTestService
はフォーム デザイナからの TService コンポーネントの名前です。