3 int WINAPI
WinMain(HINSTANCE hInstance
, HINSTANCE hPrevInstance
,
4 PSTR szCmdLine
, int iCmdShow
)
6 PROCESS_INFORMATION procinfo
;
7 STARTUPINFOA startinfo
;
10 if (*szCmdLine
== '\0')
12 MessageBox(NULL
, "Usage: background.exe <command>", "Invalid usage!", MB_ICONSTOP
);
16 /* Init the STARTUPINFOA struct. */
17 memset(&startinfo
, 0, sizeof(startinfo
));
18 startinfo
.cb
= sizeof(startinfo
);
20 rc
= CreateProcess(NULL
,
21 szCmdLine
, // command line
22 NULL
, // process security attributes
23 NULL
, // primary thread security attributes
24 TRUE
, // handles are inherited
25 DETACHED_PROCESS
, // creation flags
26 NULL
, // use parent's environment
27 NULL
, // use parent's current directory
28 &startinfo
, // STARTUPINFO pointer
29 &procinfo
); // receives PROCESS_INFORMATION
32 MessageBox(NULL
, szCmdLine
, "Failed to launch command!", MB_ICONSTOP
);
37 CloseHandle(procinfo
.hProcess
);
38 CloseHandle(procinfo
.hThread
);