forked from puppetlabs/nssm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
console.cpp
28 lines (22 loc) · 829 Bytes
/
console.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "nssm.h"
/* See if we were launched from a console window. */
bool check_console() {
/* If we're running in a service context there will be no console window. */
HWND console = GetConsoleWindow();
if (! console) return false;
unsigned long pid;
if (! GetWindowThreadProcessId(console, &pid)) return false;
/*
If the process associated with the console window handle is the same as
this process, we were not launched from an existing console. The user
probably double-clicked our executable.
*/
if (GetCurrentProcessId() != pid) return true;
/* We close our new console so that subsequent messages appear in a popup. */
FreeConsole();
return false;
}
void alloc_console(nssm_service_t *service) {
if (service->no_console) return;
AllocConsole();
}