【问题标题】:QProcess doesn't run with spaces in pathQProcess 不会在路径中使用空格运行
【发布时间】:2020-09-02 09:28:10
【问题描述】:

我在启动路径包含空格的 QProcess 时遇到了问题。总体目标是运行其他程序(目前在 Windows 上,但 macOS 也会很棒)。我测试了多个不同的路径,似乎只有没有空格的路径才有效。

这行得通:

QProcess *process = new QProcess();
process->startDetached("C:\\Users\\xxxx\\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\"");

【问题讨论】:

  • 也许是这样:process->startDetached("\"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\"");?
  • 您,先生!是我的英雄!需要更多的测试,但它现在似乎工作了!谢谢!
  • 或者,使用setProgramstartDetached 方法来避免引用头痛。
  • 你能详细说明一下吗?我将如何使用setProgram

标签: c++ qt qprocess


【解决方案1】:

如果你分别设置程序和参数,Qt 会为你找出正确的引用。请注意参数列表,每个参数都将是目标进程中的一个参数:

QProcess *process = new QProcess();
process->setProgram("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe");
process->setArguments(QStringList() << "www.google.com");
process->startDetached();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多