问题描述
我在启动QProcess时遇到了问题,其中路径包含空格。总体目标是运行其他程序(目前在Windows上,但macOS也很棒)。我测试了多条不同的路径,似乎只有没有空格的路径才能起作用。
这有效:
QProcess *process = new QProcess();
process->startDetached("C:\\Users\\lilfaen\\AppData\\Local\\Programs\\Opera\\launcher.exe");
这不起作用:
QProcess *process = new QProcess();
process->startDetached("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe");
如何使它正常工作? 欢迎任何帮助!
提前谢谢!
编辑: 根据vahancho的评论,我再次尝试了第二个示例,该示例仍然有效。谢谢! 将使用其他多种路径进行更多测试,并更新此帖子。
QProcess *process = new QProcess();
process->startDetached("\"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\"");
解决方法
如果分别设置程序和参数,Qt将为您找出正确的引用。注意参数列表,每个参数都将是目标进程中的一个参数:
QProcess *process = new QProcess();
process->setProgram("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe");
process->setArguments(QStringList() << "www.google.com");
process->startDetached();