QProcess 无法传递参数
Posted
技术标签:
【中文标题】QProcess 无法传递参数【英文标题】:QProcess fails to pass the arguments 【发布时间】: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);
【问题讨论】:
【参考方案1】:你问题中的代码有3个问题:
QString item = arg.takeAt(0);
这里
takeAt(0)
从arg
列表中删除您的论点。所以当你将arg
传递给startDetached
的那一刻,它已经是空的了。
您需要使用-login
而不是-launch
作为命令行参数。见Steam support documentation。
您必须将用户名和密码作为单独的参数传递,所以QStringList arg = QStringList() << "-login" << "123" << "123";
而不是QStringList arg; arg << "-launch 123 123";
。
【讨论】:
【参考方案2】:我的解决方案是:
QStringList arg;
arg << "-login";
arg << "123";
arg << "123";
代替:
arg << "-launch 123 123";
【讨论】:
以上是关于QProcess 无法传递参数的主要内容,如果未能解决你的问题,请参考以下文章