I created a Windows service with Delphi for a client server application.
To install it I use
c:\Test\MyService.exe /install (or /uninstall)
This installs the service and in Windows services it lists with "MyService" name and empty description.
How to define a different name and insert a description (to be seen when running services.msc
)?
Note: I need this because on the same machine i need to install more times the same service (1 per database).
Currently the only workaround i foudn is to rename the service exe, but I'd prefer to find out the correct command line way to do it (since I do this from ShellExecute
).
Update:
Somehow i'd look for something like (this is just for explanation reasons of course! - InstallService.exe
is a name i just invented):
InstallService.exe c:\Test\MyService.exe /install /name='MyService1'
/description='This is my service for database 1'
but also a more compact version would be fine like:
c:\Test\MyService.exe /install /name='MyService1'
/description='This is my service for database 1'
Windows already ships with the utility that you need, namely sc create
.
>sc create /? DESCRIPTION: Creates a service entry in the registry and Service Database. USAGE: sc create [service name] [binPath= ] ... OPTIONS: NOTE: The option name includes the equal sign. A space is required between the equal sign and the value. type= (default = own) start= (default = demand) error= (default = normal) binPath= group= tag= depend= obj= (default = LocalSystem) DisplayName= password=
This will create the service and allow you to specify the name and display name.
To modify the description you need sc description
:
>sc description /? DESCRIPTION: Sets the description string for a service. USAGE: sc description [service name] [description]
The other obvious option is to build command line parsing into your service. That's trivially easy to do. Simply assign handlers for the service's BeforeInstall
and/or AfterInstall
events and process the switches there.