QProcess无法拉起Program file中exe解决方法

问题背景

新项目有个功能点,对电脑硬件进行检查,恰好公司已经有一个检测硬件的MFC工具了,新工具是QT开发;为了节省开发成本,我们就选择直接用新项目拉老工具执行检查功能

出问题的解决方法

  1. **QProcess的start(exePath:参数为exe的绝对路径)**方法拉已有工具
  2. 使用**waitForFinished(-1)**来等待工具关闭

出现问题

  1. 假定我们exe名为 tool.exe
  2. 当exePath参数为D:/tool/tool.exe 或其他不含空格目录时,没有任何问题,均可拉起来
  3. 当exePath参数为D:/tool bb/tool.exe目录时,也可以拉起
  4. 当exePath参数为C:/Program files/tool.exe目录时,无法拉起

尝试解决

  1. 网上查到的方法前后增加 *\**发现无效依旧无法拉动
  2. 修改为相对路径,这个tool.exe相对于我们主程序路径为"./tool/tool.exe" 或者 “.\tool\tool.exe”,也无法拉动
  3. 最终发现修改路径为 tool\tool.exe时,成功解决

成功总结

成功的原因是因为我们当前工作目录为exe所在路径,QProcess的start参数需要相对于工作目录。我们可以通过QDir::setCurrent(workingDir) 可以设置当前工作目录到需要拉动的exe所在目录,拉起后再重新设置回去即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值