QProcess start()方法调用外部程序路径带空格的终极解决办法.

比如

QProcess *p = new QProcess;

p->start("d:\a b\test.exe");

因为ab之间有空格, test.exe不会被调用.

网上找了些办法, 比如用p->startDetached("d:\a b\test.exe");

虽然可以调用test.exe, 但无法用p->state()判断test.exe的进程状态, 比如是否正在运行.

最终从外网找到终极解决办法, 简单实用.

先用QDir::setCurrent("d:\a b\test.exe")将当前目录设置到外部执行文件目录

然后直接使用 p->start("test.exe").

必要的话, 再把目录设回来: QDir::setCurrent(QApplication::applicationDirPath())

完毕!


.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值