【问题标题】:QProcess fails to pass the argumentsQProcess 无法传递参数
【发布时间】:2016-01-05 15:34:28
【问题描述】:

我想制作一个小型 Qt 应用程序,以便能够使用 -login 登录密码作为启动选项在 Steam 帐户之间快速切换。问题是我无法使用带有所需参数的 Qt 应用程序运行 steam.exe。 这是一个代码:

QString path("C:\\Program Files (x86)\\Steam");
QStringList arg;
arg << "-launch 123 123";
QString item = arg.takeAt(0);
QString res("Steam.exe");
QString program = "\"" + path + "/" + res + "\"";
QProcess* process = new QProcess();
process->startDetached(program, arg);

【问题讨论】:

    标签: c++ windows qt qprocess


    【解决方案1】:

    你问题中的代码有3个问题:

    1. QString item = arg.takeAt(0); 这里 takeAt(0)arg 列表中删除您的论点。所以当你将arg 传递给startDetached 的那一刻,它已经是空的了。

    2. 您需要使用-login 而不是-launch 作为命令行参数。见Steam support documentation

    3. 您必须将用户名和密码作为单独的参数传递,所以QStringList arg = QStringList() &lt;&lt; "-login" &lt;&lt; "123" &lt;&lt; "123"; 而不是QStringList arg; arg &lt;&lt; "-launch 123 123";

    【讨论】:

      【解决方案2】:

      我的解决方案是:

      QStringList arg;
          arg << "-login";
          arg << "123";
          arg << "123";
      

      代替:

      arg << "-launch 123 123";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-13
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-11
        • 2020-05-15
        相关资源
        最近更新 更多