Hi guys,
I am trying to create a silent process with CreateProcess API. I have yet succeeded to do so. So i ask for your help, which is kindly appreciated.
I also tried escaping the backslashes it didn;t help....Perhaps it needs something specific.Code:DWORD RunSilent(const char* strFunct, const char* strstrParams) { STARTUPINFOA StartupInfo; PROCESS_INFORMATION ProcessInfo; char Args[4096]; char *pEnvCMD = NULL; char *pDefaultCMD = "CMD.EXE"; ULONG rc; memset(&StartupInfo, 0, sizeof(StartupInfo)); StartupInfo.cb = sizeof(STARTUPINFO); StartupInfo.dwFlags = STARTF_USESHOWWINDOW; StartupInfo.wShowWindow = SW_HIDE; Args[0] = 0; pEnvCMD = getenv("COMSPEC"); if (pEnvCMD){ strcpy(Args, pEnvCMD); } else{ strcpy(Args, pDefaultCMD); } // "/c" option - Do the command then terminate the command window strcat(Args, " /c "); //the application you would like to run from the command window strcat(Args, strFunct); strcat(Args, " "); //the parameters passed to the application being run from the command window. strcat(Args, strstrParams); strcat(Args, " /S /norestart /q"); if (!CreateProcessA(NULL, Args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &StartupInfo, &ProcessInfo)) { return GetLastError(); } WaitForSingleObject(ProcessInfo.hProcess, INFINITE); if (!GetExitCodeProcess(ProcessInfo.hProcess, &rc)) rc = 0; CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); return rc; }
Thanks.




Reply With Quote
