QProcess 使用start方法调用含有空格路径的程序

时间:2024-03-20 10:50:02

其实很简单:

process->start("\"‪C:\\Program Files (x86)\\Windows Media Player\\wmplayer.exe\"");

但是我在这么使用的时候,却发现一个问题,这个路径我是从属性页复制过来的

QProcess 使用start方法调用含有空格路径的程序

对象名称那里,我从路径尾部往头部选中,然后选择复制,粘贴到代码,再加上转义符。在调试时,路径莫名其妙的多了一个未知的非打印字符:\20052

QProcess 使用start方法调用含有空格路径的程序

我一脸懵逼,于是乎,手动输入路径。果然没有问题, 启动成功。另外,复制对象名称,从头部往尾部选中,则不会有这个\20052。

提醒:

我又想,如果使用

process->setProgram("‪C:\\Program Files (x86)\\Windows Media Player\\wmplayer.exe");
Qt会不会把它当作一个整体来处理呢。没错Qt是把它当作整体来处理了,但是毕竟Qt调用的是系统的API,系统API在碰到这个情况时,按空格分拆,于是乎白忙活一场。