2016-01-05 81 views
2

我想使一个小的Qt应用程序能够使用-login登录passsword作为启动选项快速切换蒸汽帐户。问题是我无法使用我的Qt应用程序和必要的参数运行steam.exe。 下面是一个代码:QProcess无法传递参数

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); 

回答

5

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

  1. QString item = arg.takeAt(0);这里 takeAt(0)将删除arg -list你的论点。所以,当你通过argstartDetached它已经是空的。

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

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

0

解决方案对我来说是:

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

代替:

arg << "-launch 123 123";