Q执行带参数的exe时出现进程问题
QProcess issue in executing a exe with arguments
我在将QProcess设置为使用参数运行可执行文件时遇到问题。相同的Qt代码如下,
QString program = "C:Setup.exe";
QStringList arguments;
arguments << "-uninstall";
QProcess::startDetached(program, arguments);
这个片段的输出是卸载一些程序。但这并没有发生。我做错了什么吗?
但如果我转到cmd提示符并执行相同的操作,如。,
c:/>"c:\/Setup.exe"-卸载这非常有效。
至少有两个选项可以解决您的问题。
-
根据文档使用"/"作为目录分隔符:
如果您总是使用"/",Qt将转换您的路径以符合底层操作系统。
-
根据文档中的一个示例,每当使用字符串形式的文件路径时,请转义反斜杠:
env.insert("TMPDIR", "C:\MyApp\temp"); // Add an environment variable env.insert("PATH", env.value("Path") + ";C:\Bin");
因此,你应该写这样的东西:
QString program = "C:/Setup.exe";
QStringList arguments;
arguments << "-uninstall";
QProcess::startDetached(program, arguments);
或者这个:
QString program = "C:\Setup.exe";
QStringList arguments;
arguments << "-uninstall";
QProcess::startDetached(program, arguments);
通常,当遇到此类问题时,您可以使用以下语法打印出错误字符串以获取更多信息:
qDebug() << myProcess.errorString();
当然,这需要一个实例。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 父进程意外被子 cmd 杀死.exe运行 java jar 的进程 - WINDOWS 7 问题 - C++
- 使用管道从 STDIN 读取分叉进程时出现问题
- 在 Linux 中从单独的单线程进程生成多线程进程时出现问题
- 在 c++ 中等待一个子进程与另一个子进程时遇到问题
- 使用boost进程间库的phpexec共享内存和Cloudfoundry容器问题
- 从导致问题的java进程附加到外部c++进程
- 使用SetParent将窗口嵌入外部进程的各种问题
- 读取进程内存问题未更新
- C++创建进程 - 系统错误#2找不到文件 - 我的文件路径有什么问题?
- 从另一个进程访问STA对象时出现问题
- COM进程中DLL中的DllMain出现问题
- 打开带有DEBUG标志的进程的问题
- 创建读取面向互联网的套接字的守护进程有什么安全问题?
- Q执行带参数的exe时出现进程问题
- 枚举进程句柄,奇怪的问题
- Q进程::执行(“清除”)问题
- 在Qt中使用windows进程时的问题