Allow querying a service's name.

Since we can now open a service by its display name it may be
interesting to know what its canonical name is.

Find out with:

    nssm get <displayname> Name
master
Iain Patterson 11 years ago
parent 048ecc8a89
commit 121d394369

@ -324,6 +324,7 @@ run NSSM itself. The parameters recognised are as follows:
DisplayName: Service display name.
ImagePath: Path to the service executable.
ObjectName: User account which runs the service.
Name: Service key name.
Start: Service startup type.
Type: Service type.
@ -381,6 +382,12 @@ exit code of 2, run
nssm set <servicename> AppExit 2 Exit
The Name parameter can only be queried, not set. It returns the service's
registry key name. This may be useful to know if you take advantage of
the fact that you can substitute the service's display name anywhere where
the syntax calls for <servicename>.
The ObjectName parameter requires an additional argument only when setting
a username. The additional argument is the password of the user.
@ -486,6 +493,10 @@ To remove the server:
nssm remove UT2004 confirm
To find out the service name of a service with a display name:
nssm get "Background Intelligent Transfer Service" Name
Building NSSM from source
-------------------------

@ -728,6 +728,19 @@
.
MessageId = +1
SymbolicName = NSSM_MESSAGE_CANNOT_RENAME_SERVICE
Severity = Informational
Language = English
Services cannot be renamed!
.
Language = French
Services cannot be renamed!
.
Language = Italian
Services cannot be renamed!
.
MessageId = +1
SymbolicName = NSSM_GUI_CREATEDIALOG_FAILED
Severity = Informational
Language = English

@ -351,6 +351,15 @@ int native_get_imagepath(const TCHAR *service_name, void *param, const TCHAR *na
return ret;
}
int native_set_name(const TCHAR *service_name, void *param, const TCHAR *name, void *default_value, value_t *value, const TCHAR *additional) {
print_message(stderr, NSSM_MESSAGE_CANNOT_RENAME_SERVICE);
return -1;
}
int native_get_name(const TCHAR *service_name, void *param, const TCHAR *name, void *default_value, value_t *value, const TCHAR *additional) {
return value_from_string(name, value, service_name);
}
int native_set_objectname(const TCHAR *service_name, void *param, const TCHAR *name, void *default_value, value_t *value, const TCHAR *additional) {
SC_HANDLE service_handle = (SC_HANDLE) param;
if (! service_handle) return -1;
@ -666,6 +675,7 @@ settings_t settings[] = {
{ NSSM_NATIVE_DISPLAYNAME, REG_SZ, NULL, true, 0, native_set_displayname, native_get_displayname },
{ NSSM_NATIVE_IMAGEPATH, REG_EXPAND_SZ, NULL, true, 0, native_set_imagepath, native_get_imagepath },
{ NSSM_NATIVE_OBJECTNAME, REG_SZ, NSSM_LOCALSYSTEM_ACCOUNT, true, ADDITIONAL_SETTING, native_set_objectname, native_get_objectname },
{ NSSM_NATIVE_NAME, REG_SZ, NULL, true, 0, native_set_name, native_get_name },
{ NSSM_NATIVE_STARTUP, REG_SZ, NULL, true, 0, native_set_startup, native_get_startup },
{ NSSM_NATIVE_TYPE, REG_SZ, NULL, true, 0, native_set_type, native_get_type },
{ NULL, NULL, NULL, NULL, NULL }

@ -4,6 +4,7 @@
#define NSSM_NATIVE_DESCRIPTION _T("Description")
#define NSSM_NATIVE_DISPLAYNAME _T("DisplayName")
#define NSSM_NATIVE_IMAGEPATH _T("ImagePath")
#define NSSM_NATIVE_NAME _T("Name")
#define NSSM_NATIVE_OBJECTNAME _T("ObjectName")
#define NSSM_NATIVE_STARTUP _T("Start")
#define NSSM_NATIVE_TYPE _T("Type")

Loading…
Cancel
Save