// wxProcess creation
// ----------------------------------------------------------------------------
-void wxProcess::Init(wxEvtHandler *parent, int id, bool redirect)
+void wxProcess::Init(wxEvtHandler *parent, int id, int flags)
{
if ( parent )
SetNextHandler(parent);
m_id = id;
- m_redirect = redirect;
+ m_redirect = (flags & wxPROCESS_REDIRECT) != 0;
#if wxUSE_STREAMS
m_inputStream = NULL;
#endif // wxUSE_STREAMS
}
+/* static */
+wxProcess *wxProcess::Open(const wxString& cmd, int flags)
+{
+ wxASSERT_MSG( !(flags & wxEXEC_SYNC), wxT("wxEXEC_SYNC should not be used." ));
+ wxProcess *process = new wxProcess(wxPROCESS_REDIRECT);
+ if ( !wxExecute(cmd, flags, process) )
+ {
+ // couldn't launch the process
+ delete process;
+ return NULL;
+ }
+
+ return process;
+}
+
// ----------------------------------------------------------------------------
// wxProcess termination
// ----------------------------------------------------------------------------