- TCHAR path[MAX_PATH];\r
- GetModuleFileName(0, path, _countof(path));\r
- STARTUPINFO si;\r
- ZeroMemory(&si, sizeof(si));\r
- si.cb = sizeof(si);\r
- PROCESS_INFORMATION pi;\r
- ZeroMemory(&pi, sizeof(pi));\r
- unsigned long flags = CREATE_SUSPENDED;\r
-#ifdef UNICODE\r
- flags |= CREATE_UNICODE_ENVIRONMENT;\r
-#endif\r
-\r
- if (! CreateProcess(0, path, 0, 0, 0, flags, env, 0, &si, &pi)) {\r
- unsigned long error = GetLastError();\r
- if (error == ERROR_INVALID_PARAMETER) {\r
- popup_message(MB_OK | MB_ICONEXCLAMATION, NSSM_GUI_INVALID_ENVIRONMENT);\r
- HeapFree(GetProcessHeap(), 0, env);\r
- envlen = 0;\r
- }\r
+ if (test_environment(env)) {\r
+ popup_message(MB_OK | MB_ICONEXCLAMATION, NSSM_GUI_INVALID_ENVIRONMENT);\r
+ HeapFree(GetProcessHeap(), 0, env);\r