Loading src/portable.cpp +10 −6 Original line number Original line Diff line number Diff line Loading @@ -130,20 +130,23 @@ int portable_system(const char *command,const char *args,bool commandHasConsole // For that case COM is initialized as follows // For that case COM is initialized as follows CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); QString commandw = QString::fromUtf8( command ); QString argsw = QString::fromUtf8( args ); // gswin32 is a GUI api which will pop up a window and run // gswin32 is a GUI api which will pop up a window and run // asynchronously. To prevent both, we use ShellExecuteEx and // asynchronously. To prevent both, we use ShellExecuteEx and // WaitForSingleObject (thanks to Robert Golias for the code) // WaitForSingleObject (thanks to Robert Golias for the code) SHELLEXECUTEINFO sInfo = { SHELLEXECUTEINFOW sInfo = { sizeof(SHELLEXECUTEINFO), /* structure size */ sizeof(SHELLEXECUTEINFOW), /* structure size */ SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI, /* tell us the process SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI, /* tell us the process * handle so we can wait till it's done | * handle so we can wait till it's done | * do not display msg box if error * do not display msg box if error */ */ NULL, /* window handle */ NULL, /* window handle */ NULL, /* action to perform: open */ NULL, /* action to perform: open */ command, /* file to execute */ (LPCWSTR)commandw.ucs2(), /* file to execute */ args, /* argument list */ (LPCWSTR)argsw.ucs2(), /* argument list */ NULL, /* use current working dir */ NULL, /* use current working dir */ SW_HIDE, /* minimize on start-up */ SW_HIDE, /* minimize on start-up */ 0, /* application instance handle */ 0, /* application instance handle */ Loading @@ -154,7 +157,8 @@ int portable_system(const char *command,const char *args,bool commandHasConsole NULL, /* ignored: icon */ NULL, /* ignored: icon */ NULL /* resulting application handle */ NULL /* resulting application handle */ }; }; if (!ShellExecuteEx(&sInfo)) if (!ShellExecuteExW(&sInfo)) { { return -1; return -1; } } Loading Loading
src/portable.cpp +10 −6 Original line number Original line Diff line number Diff line Loading @@ -130,20 +130,23 @@ int portable_system(const char *command,const char *args,bool commandHasConsole // For that case COM is initialized as follows // For that case COM is initialized as follows CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); QString commandw = QString::fromUtf8( command ); QString argsw = QString::fromUtf8( args ); // gswin32 is a GUI api which will pop up a window and run // gswin32 is a GUI api which will pop up a window and run // asynchronously. To prevent both, we use ShellExecuteEx and // asynchronously. To prevent both, we use ShellExecuteEx and // WaitForSingleObject (thanks to Robert Golias for the code) // WaitForSingleObject (thanks to Robert Golias for the code) SHELLEXECUTEINFO sInfo = { SHELLEXECUTEINFOW sInfo = { sizeof(SHELLEXECUTEINFO), /* structure size */ sizeof(SHELLEXECUTEINFOW), /* structure size */ SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI, /* tell us the process SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI, /* tell us the process * handle so we can wait till it's done | * handle so we can wait till it's done | * do not display msg box if error * do not display msg box if error */ */ NULL, /* window handle */ NULL, /* window handle */ NULL, /* action to perform: open */ NULL, /* action to perform: open */ command, /* file to execute */ (LPCWSTR)commandw.ucs2(), /* file to execute */ args, /* argument list */ (LPCWSTR)argsw.ucs2(), /* argument list */ NULL, /* use current working dir */ NULL, /* use current working dir */ SW_HIDE, /* minimize on start-up */ SW_HIDE, /* minimize on start-up */ 0, /* application instance handle */ 0, /* application instance handle */ Loading @@ -154,7 +157,8 @@ int portable_system(const char *command,const char *args,bool commandHasConsole NULL, /* ignored: icon */ NULL, /* ignored: icon */ NULL /* resulting application handle */ NULL /* resulting application handle */ }; }; if (!ShellExecuteEx(&sInfo)) if (!ShellExecuteExW(&sInfo)) { { return -1; return -1; } } Loading