Delphiでクライアントサーバーアプリケーション用のWindowsサービスを作成しました。
インストールするには、私が使用します
c:\Test\MyService.exe /install (or /uninstall)
これによりサービスがインストールされ、Windowsサービスでは "MyService"の名前と空の説明がリストされます。
別の名前を定義して説明を挿入する方法(services.msc
の実行時に表示されます)?
注:同じマシンに同じサービスを複数回インストールする必要があるため(データベースごとに1つ)、これが必要です。
現在、唯一の回避策は、サービスexeの名前を変更することですが、それを行うための正しいコマンドラインの方法を見つけたいと思っています(ShellExecute
からこれを行うため)。
pdate:どういうわけか私は次のようなものを探します(これはもちろん説明のためだけです!-InstallService.exe
は私が考案したばかりの名前です):
InstallService.exe c:\Test\MyService.exe /install /name='MyService1'
/description='This is my service for database 1'
しかし、よりコンパクトなバージョンも次のようにうまくいきます:
c:\Test\MyService.exe /install /name='MyService1'
/description='This is my service for database 1'
Windowsには、必要なユーティリティ、つまりsc create
が付属しています。
> sc create /? DESCRIPTION: レジストリとサービスデータベースにサービスエントリを作成します。 使用方法: sc create [サービス名] [binPath =] ... OPTIONS: 注:オプション名には等号が含まれています。 等号とvalue。 type = (デフォルト=自分) start = (デフォルト=デマンド) error = (デフォルト=通常) binPath = グループ= タグ= 依存= obj = (デフォルト= LocalSystem) DisplayName = password =
これによりサービスが作成され、名前と表示名を指定できるようになります。
説明を変更するには、sc description
が必要です:
> sc description /? DESCRIPTION: サービスの説明文字列を設定します。 USAGE: sc description [サービス名] [説明]
他の明白なオプションは、サービスにコマンドライン解析を組み込むことです。これは簡単に実行できます。サービスのBeforeInstall
および/またはAfterInstall
イベントにハンドラーを割り当て、そこでスイッチを処理するだけです。