X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32592631588b2f32d7cb336a05b50c74eafd8098..520e470fdd0daef09c77938db642e4583933c90d:/src/msw/utilsexc.cpp diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp index ac3c249d08..43e66153a2 100644 --- a/src/msw/utilsexc.cpp +++ b/src/msw/utilsexc.cpp @@ -10,7 +10,7 @@ ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ -#pragma implementation "utils.h" +#pragma implementation #endif // For compilers that support precompilation, includes "wx.h". @@ -26,6 +26,7 @@ #include "wx/app.h" #endif +#include "wx/log.h" #include "wx/msw/private.h" #include @@ -72,6 +73,8 @@ struct wxExecuteData { char state; }; + +#ifdef __WIN32__ static DWORD wxExecuteThread(wxExecuteData *data) { WaitForSingleObject(data->process, INFINITE); @@ -81,6 +84,8 @@ static DWORD wxExecuteThread(wxExecuteData *data) return 0; } +#endif + LRESULT APIENTRY _EXPORT wxExecuteWindowCbk(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) @@ -130,10 +135,8 @@ long wxExecute(const wxString& command, bool sync, wxProcess *handler) *argp++ = '\0'; #ifdef __GNUWIN32__ - result = ShellExecute((HWND) (wxTheApp->GetTopWindow() ? (HWND) wxTheApp->GetT -opWindow()->GetHWND() : NULL), - (const wchar_t) "open", (const wchar_t) cl, (const wchar_t) arg -p,i + result = ShellExecute((HWND) (wxTheApp->GetTopWindow() ? (HWND) wxTheApp->GetTopWindow()->GetHWND() : NULL), + (const wchar_t) "open", (const wchar_t) cl, (const wchar_t) argp, (const wchar_t) NULL, SW_SHOWNORMAL); #else result = ShellExecute( (HWND) (wxTheApp->GetTopWindow() ? wxTheApp->GetTopWindow()->GetHWND() : NULL), @@ -142,6 +145,8 @@ p,i if (((long)result) <= 32) { free(cl); + + wxLogSysError(_("Can't execute command '%s'"), command.c_str()); return 0; } @@ -198,3 +203,16 @@ p,i return(instanceID); #endif } + +long wxExecute(char **argv, bool sync, wxProcess *handler) +{ + wxString command = ""; + + while (*argv != NULL) { + command += *argv; + command += ' '; + argv++; + } + command.RemoveLast(); + return wxExecute(command, sync, handler); +}