其实很简单:

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在碰到这个情况时,按空格分拆,于是乎白忙活一场。



相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2022-03-08
  • 2022-12-23
  • 2022-03-04
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2022-01-06
  • 2022-12-23
相关资源
相似解决方案