|
@@ -822,8 +822,15 @@ int get_hook(const TCHAR *service_name, const TCHAR *hook_event, const TCHAR *ho
|
|
|
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_OUT_OF_MEMORY, _T("hook registry"), _T("get_hook()"), 0);
|
|
|
return 1;
|
|
|
}
|
|
|
- HKEY key = open_registry(service_name, registry, KEY_READ, false);
|
|
|
- if (! key) return 1;
|
|
|
+ HKEY key;
|
|
|
+ long error = open_registry(service_name, registry, KEY_READ, &key, false);
|
|
|
+ if (! key) {
|
|
|
+ if (error == ERROR_FILE_NOT_FOUND) {
|
|
|
+ ZeroMemory(buffer, buflen);
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
|
|
|
int ret = expand_parameter(key, (TCHAR *) hook_action, buffer, buflen, true, false);
|
|
|
|