从Qt程序运行外部进程,并进行一些更改

时间:2012-02-08 21:49:55

标签: c++ windows qt

我有两个程序:

程序1 - 由我编写的Qt程序。

程序2 - 非由...编写的程序。

我的目标是从程序1运行程序2(我知道该怎么做)。

然而,我的问题是程序2有一些它查找的.ini文件。事实证明,目录程序2查找的不是可执行文件的目录,而是进程启动可执行文件的目录...在本例中为程序1。

所以我的错误是这样的:

“无法在程序1的目录C://目录中找到文件xxx.ini // inifiles //...

我的问题是......有什么方法可以解决这个问题吗?我知道这有点令人困惑,所以请告诉我一些事情是否有意义。

2 个答案:

答案 0 :(得分:4)

假设您使用QProcess启动程序2,则需要通过调用QProcess::setWorkingDirectory(const QString &dir)来设置工作目录。

documentation州:

  

将工作目录设置为dir。 QProcess将启动该流程   这个目录。默认行为是在中启动进程   调用进程的工作目录。

答案 1 :(得分:0)

如果您想了解目前正在使用的目录,请尝试以下方法:

QDir application_dir = QDir( QDir::currentPath() );

这对于调试非常有用。