QProcess无法传递参数

时间:2016-01-05 15:34:29

标签: c++ windows qt qprocess

我想制作一个小型Qt应用程序,以便能够使用-login登录密码作为启动选项快速切换蒸汽帐户。问题是我无法使用我的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);

2 个答案:

答案 0 :(得分:5)

您的问题中的代码存在3个问题:

  1. QString item = arg.takeAt(0);在这里 takeAt(0)arg列表中删除您的参数。因此,当您将arg传递给startDetached时,它已经是空的。

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

  3. 您必须将用户名和密码作为单独的参数传递,因此QStringList arg = QStringList() << "-login" << "123" << "123";代替QStringList arg; arg << "-launch 123 123";

答案 1 :(得分:0)

我的解决方案是:

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

而不是:

arg << "-launch 123 123";