arguments << httpProxyAddr << httpProxyPort;
}
- QString loggingCommand = QString("staring ecp: ");
- command = QString("\"" + command + "\"");
- loggingCommand += command;
+ QString loggingCommand = QString("launching ecp: \"" + command + "\"");
QStringList wrapArguments;
for (int i = 0; i < arguments.size(); ++i) {
qInfo() << qPrintable(loggingCommand);
QString workingDir = QFileInfo(command).canonicalPath();
- try {
#ifndef CONFIG_WIN32
+ try {
QProcess::startDetached(command, arguments, workingDir);
-#else
- QString args = QString("\"" + command +"\"");
- for (int i = 0; i < arguments.size(); ++i) {
- args += " \"" + arguments.at(i) + "\"";
- }
- bool success = false;
-
- PROCESS_INFORMATION pinfo;
-
- STARTUPINFOW startupInfo = { sizeof( STARTUPINFO ), 0, 0, 0,
- (ulong)CW_USEDEFAULT, (ulong)CW_USEDEFAULT,
- (ulong)CW_USEDEFAULT, (ulong)CW_USEDEFAULT,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
- success = CreateProcessW(0, (wchar_t*)args.utf16(),
- 0, 0, FALSE, CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE, 0,
- workingDir.isEmpty() ? 0 : (wchar_t*)workingDir.utf16(),
- &startupInfo, &pinfo);
-
- if (success) {
- CloseHandle(pinfo.hThread);
- CloseHandle(pinfo.hProcess);
- }
-#endif
} catch (QString &error) {
showMsgBox(QMessageBox::Warning, MSG_INVALID_ECP_OPEN + error);
return;
}
+#else
+ QString winArguments = QString("\"" + command +"\"");
+ for (int i = 0; i < arguments.size(); ++i) {
+ winArguments += " \"" + arguments.at(i) + "\"";
+ }
+
+ PROCESS_INFORMATION pinfo;
+
+ STARTUPINFOW startupInfo = { sizeof(STARTUPINFO), 0, 0, 0,
+ (ulong)CW_USEDEFAULT, (ulong)CW_USEDEFAULT,
+ (ulong)CW_USEDEFAULT, (ulong)CW_USEDEFAULT,
+ 0, 0, 0, STARTF_USESHOWWINDOW, SW_HIDE, 0, 0, 0, 0, 0
+ };
+ bool success = CreateProcessW(0, (LPWSTR)winArguments.utf16(),
+ 0, 0, FALSE, CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE, 0,
+ workingDir.isEmpty() ? 0 : (LPCWSTR)workingDir.utf16(),
+ &startupInfo, &pinfo);
+
+
+ if (!success) {
+ QString error = QString::number(GetLastError());
+ qWarning() << qPrintable(QString("error occured during launching \
+ ECP: ") + error);
+ showMsgBox(QMessageBox::Warning, MSG_INVALID_ECP_OPEN + error);
+ }
+
+ CloseHandle(pinfo.hThread);
+ CloseHandle(pinfo.hProcess);
+#endif
}
void ContextMenu::slotControlPanel()