From 3d22109090d8fa64bf1fa7a5ff3b5e5ef96e1106 Mon Sep 17 00:00:00 2001 From: ssk-wh Date: Wed, 11 Jan 2023 10:43:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dlaunch=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E6=89=A7=E8=A1=8C=E5=BC=82=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 设置工作目录失效导致执行异常,错误的使用了QProcess的静态startDetached函数 内部会重新构造一个新的QProcess对象,导致之前的设置全部失效 Log: 修复launch情况下执行异常的问题 Influence: launch类接口功能 Bug: https://pms.uniontech.com/bug-view-181747.html Change-Id: I5ebe006a9ae8f4785fe880304bf4cf6ad1782634 --- src/modules/startmanager/startmanager.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/modules/startmanager/startmanager.cpp b/src/modules/startmanager/startmanager.cpp index 6afaa8d..8be6865 100644 --- a/src/modules/startmanager/startmanager.cpp +++ b/src/modules/startmanager/startmanager.cpp @@ -464,13 +464,15 @@ bool StartManager::launch(DesktopInfo *info, QString cmdLine, uint32_t timestamp } #ifdef QT_DEBUG - qInfo() << "launchApp: " << desktopFile << " exec: " << exec << " args: " << exeArgs; + qInfo() << "launchApp: " << desktopFile << " exec: " << exec << " args: " << exeArgs; #endif + process.setProgram(exec); + process.setArguments(exeArgs); process.setWorkingDirectory(workingDir.c_str()); process.setEnvironment(envs); - - return process.startDetached(exec, exeArgs); + qint64 *pid = nullptr; + return process.startDetached(pid); } bool StartManager::doRunCommandWithOptions(QString exe, QStringList args, QVariantMap options)