}
-Standard_Integer OSD_Process::Spawn (const TCollection_AsciiString& cmd,
- const Standard_Boolean /*ShowWindow*/)
-{
- return system(cmd.ToCString());
-}
-
-
void OSD_Process::TerminalType(TCollection_AsciiString& Name){
TCollection_AsciiString which="TERM";
OSD_Environment term (which,"");
//
}
-// =======================================================================
-// function : Spawn
-// purpose :
-// =======================================================================
-Standard_Integer OSD_Process::Spawn (const TCollection_AsciiString& theCmd,
- const Standard_Boolean theToShowWindow)
-{
-#ifndef OCCT_UWP
- STARTUPINFOW aStartupInfo;
- ZeroMemory (&aStartupInfo, sizeof(STARTUPINFO));
- aStartupInfo.cb = sizeof(STARTUPINFO);
- if (!theToShowWindow)
- {
- aStartupInfo.dwFlags = STARTF_USESHOWWINDOW;
- aStartupInfo.wShowWindow = SW_HIDE;
- }
-
- DWORD aRes = 0;
- TCollection_ExtendedString aCmdWide (theCmd);
- wchar_t* aCmdWidePtr = const_cast<wchar_t*>(aCmdWide.ToWideString()); // CreateProcessW() can modify content of this string
- PROCESS_INFORMATION aProcessInfo;
- if (!CreateProcessW (NULL, aCmdWidePtr, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &aStartupInfo, &aProcessInfo))
- {
- _osd_wnt_set_error (myError, OSD_WProcess);
- aRes = myError.Error();
- }
- else
- {
- CloseHandle (aProcessInfo.hThread);
- WaitForSingleObject (aProcessInfo.hProcess, INFINITE);
- GetExitCodeProcess (aProcessInfo.hProcess, &aRes);
- CloseHandle (aProcessInfo.hProcess);
- }
-
- return aRes;
-#else
- (void )theCmd;
- (void )theToShowWindow;
- return 0;
-#endif
-}
-
void OSD_Process :: TerminalType ( TCollection_AsciiString& Name ) {
Name = "WIN32 console";
//! Initializes the object and prepare for a possible dump
Standard_EXPORT OSD_Process();
- //! Issues a shell command
- //! ShowWindow : flag to allow show/hide of the window ( only used on WNT )
- Standard_EXPORT Standard_Integer Spawn (const TCollection_AsciiString& cmd, const Standard_Boolean ShowWindow = Standard_True);
-
//! Returns the terminal used (vt100, vt200 ,sun-cmd ...)
Standard_EXPORT void TerminalType (TCollection_AsciiString& Name);
//! Returns error number if 'Failed' is TRUE.
Standard_EXPORT Standard_Integer Error() const;
-
-
-
-protected:
-
-
-
-
-
private:
-
-
-
OSD_Error myError;
-
-
};
-
-
-
-
-
-
#endif // _OSD_Process_HeaderFile