2016-01-05 109 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";