c++ - QProcess 无法传递参数

标签 c++ windows qt qprocess

我想制作一个小型 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);

最佳答案

你问题中的代码有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"; .

关于c++ - QProcess 无法传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615439/

相关文章:

c++ - 头文件中的内部链接变量 - 每次包含头文件时是否在内存中分配变量?

c++ - 具有私有(private)成员的普通旧数据类型?

c - UDP客户端的Windows C套接字编程

python - Windows 上的资源限制?

c++ - Qt:文件读取不起作用

c++ - QPropertyAnimation 拒绝在 start() 调用后立即开始

c++ - 为什么 C++ vector 会导致 oom-killer?

c++ - 将对象插入具有动态内存的数组中(不允许 vector )C++

c# - 实现 IValueConverter 将字符串转换为图像

c++ - QGraphicsScene - 添加带有少量不透明点的大透明像素图时,应用程序挂起很长时间