X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..180b5b4827d08f1ac13bbb5eca03f775ab35a0b1:/src/msw/utilsexc.cpp diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp index 4eed50125a..60dc54d9e1 100644 --- a/src/msw/utilsexc.cpp +++ b/src/msw/utilsexc.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/utilsexec.cpp +// Name: src/msw/utilsexc.cpp // Purpose: wxExecute implementation for MSW // Author: Julian Smart // Modified by: @@ -29,14 +29,16 @@ #include "wx/app.h" #include "wx/intl.h" #include "wx/log.h" + #if wxUSE_STREAMS + #include "wx/stream.h" + #endif + #include "wx/module.h" #endif -#include "wx/stream.h" #include "wx/process.h" #include "wx/apptrait.h" -#include "wx/module.h" #include "wx/msw/private.h" @@ -483,16 +485,16 @@ size_t wxPipeOutputStream::OnSysWrite(const void *buffer, size_t len) #if wxUSE_IPC // connect to the given server via DDE and ask it to execute the command -static bool wxExecuteDDE(const wxString& ddeServer, - const wxString& ddeTopic, - const wxString& ddeCommand) +bool +wxExecuteDDE(const wxString& ddeServer, + const wxString& ddeTopic, + const wxString& ddeCommand) { bool ok wxDUMMY_INITIALIZE(false); wxDDEClient client; - wxConnectionBase *conn = client.MakeConnection(wxEmptyString, - ddeServer, - ddeTopic); + wxConnectionBase * + conn = client.MakeConnection(wxEmptyString, ddeServer, ddeTopic); if ( !conn ) { ok = false; @@ -706,23 +708,37 @@ long wxExecute(const wxString& cmd, int flags, wxProcess *handler) PROCESS_INFORMATION pi; DWORD dwFlags = CREATE_SUSPENDED; + #ifndef __WXWINCE__ dwFlags |= CREATE_DEFAULT_ERROR_MODE ; +#else + // we are assuming commands without spaces for now + wxString moduleName = command.BeforeFirst(wxT(' ')); + wxString arguments = command.AfterFirst(wxT(' ')); #endif bool ok = ::CreateProcess ( - NULL, // application name (use only cmd line) + // WinCE requires appname to be non null + // Win32 allows for null +#ifdef __WXWINCE__ + (wxChar *) + moduleName.wx_str(),// application name (wxChar *) - command.c_str(), // full command line - NULL, // security attributes: defaults for both - NULL, // the process and its main thread - redirect, // inherit handles if we use pipes - dwFlags, // process creation flags - NULL, // environment (use the same) - NULL, // current directory (use the same) - &si, // startup info (unused here) - &pi // process info + arguments.wx_str(), // arguments +#else + NULL, // application name (use only cmd line) + (wxChar *) + command.wx_str(), // full command line +#endif + NULL, // security attributes: defaults for both + NULL, // the process and its main thread + redirect, // inherit handles if we use pipes + dwFlags, // process creation flags + NULL, // environment (use the same) + NULL, // current directory (use the same) + &si, // startup info (unused here) + &pi // process info ) != 0; #if wxUSE_STREAMS && !defined(__WXWINCE__) @@ -938,4 +954,3 @@ long wxExecute(wxChar **argv, int flags, wxProcess *handler) return wxExecute(command, flags, handler); } -