18 #error This source is specific to WIN32 33 if ( bufSizeIn > 0xffffffff ) {
37 bufsize = (DWORD) bufSizeIn;
39 if ( ! GetUserName (pBuf, &bufsize) ) {
43 if ( *pBuf ==
'\0' ) {
51 (
const char *pProcessName,
const char *pBaseExecutableName )
54 STARTUPINFO startupInfo;
55 PROCESS_INFORMATION processInfo;
57 GetStartupInfo ( &startupInfo );
58 startupInfo.lpReserved =
NULL;
59 startupInfo.lpTitle = (
char *) pProcessName;
60 startupInfo.dwFlags = STARTF_USESHOWWINDOW;
61 startupInfo.wShowWindow = SW_SHOWMINNOACTIVE;
63 status = CreateProcess (
65 (
char *) pBaseExecutableName,
69 CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS,
80 W32status = FormatMessage (
81 FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
84 MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
85 (LPTSTR) &errStrMsgBuf,
92 pFmtArgs[0] =
"Failed to start executable -";
93 pFmtArgs[1] = (
char *) pBaseExecutableName;
94 pFmtArgs[2] = errStrMsgBuf;
95 pFmtArgs[3] =
"Changes may be required in your \"path\" environment variable.";
97 W32status = FormatMessage(
98 FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING |
99 FORMAT_MESSAGE_ARGUMENT_ARRAY | 80,
102 MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
103 (LPTSTR) &complteMsgBuf,
108 fprintf (
stderr,
"%s\n", (
char *) complteMsgBuf);
109 LocalFree (complteMsgBuf);
112 fprintf (
stderr,
"%s\n", (
char *) errStrMsgBuf);
116 LocalFree (errStrMsgBuf);
119 fprintf (
stderr,
"!!WARNING!!\n");
120 fprintf (
stderr,
"Unable to locate executable \"%s\".\n", pBaseExecutableName);
121 fprintf (
stderr,
"You may need to modify your \"path\" environment variable.\n");
osiSpawnDetachedProcessReturn
LIBCOM_API osiGetUserNameReturn epicsStdCall osiGetUserName(char *pBuf, unsigned bufSizeIn)
LIBCOM_API osiSpawnDetachedProcessReturn epicsStdCall osiSpawnDetachedProcess(const char *pProcessName, const char *pBaseExecutableName)