在Qt中调用cmd.exe命令

时间:2015-04-10 14:54:00

标签: qt cmd

我需要触发以下命令

convert C:\test.pdf C:\test.jpg

来自我的应用程序。

我试过

QProcess proc;
QStringList args = QStringList();
args << "convert";
args << "C:\\test.pdf";
args << "C:\\test.jpg";
int i = proc.execute("cmd.exe",args);

它不起作用。为什么呢?

编辑:Windows 7 32位

EDIT2:更准确地说,将\替换为\\

2 个答案:

答案 0 :(得分:0)

你没有太多信息,但无论如何我会建议一些事情:

尝试直接执行:

  

cmd.exe转换C:\ test.pdf C:\ test.jpg

以上命令是您尝试从代码运行的命令。如果不起作用,您应该尝试将代码更改为:

QProcess proc;
QStringList args = QStringList();
args << "C:\test.pdf";
args << "C:\test.jpg";
int i = proc.execute("convert",args); // Since you can run  "convert C:\test.pdf C:\test.jpg" 
                                      // I'm assuming you have convert.exe in your PATH environment variable.

答案 1 :(得分:0)

您需要使用双斜杠:

args << "C:\\test.pdf";

或者:

args << QDir::toNativeSeparators( "C:/test.pdf" );

因为\t是一个标签字符。所以你的字符串变成了C: est.pdf