QProcess::startDetached 在win7 32位机器上返回值为false,求大神指教

Cirtis 2015-12-11 09:09:48
如题,我目前使用的QT 版本是4.8.6,在使用QT 调用外部exe的时候发现 QProcess::startDetached 在win7 32位机器上返回值为false,在XP和win7 x64的机器上都返回true。

返回false时用QProcess 内的errorString() 显示的是 “未知错误”, 跟返回false时显示的是一样的错误信息。
QProcess process;
process.errorString();

请问有谁遇到过类似的问题,有什么办法解决的。
或者有没有能够查到错误信息的方法。
...全文
866 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanjiliu10091009 2017-12-26
  • 打赏
  • 举报
回复
确认EXE路径没有中文。或者使用如下:

bRestart = QProcess::startDetached(QString::fromLocal8Bit(argv[0]), QStringList());	// 重新启动软件
Win7 X64测试有效
Helen_Yrh 2017-07-11
  • 打赏
  • 举报
回复
引用 4 楼 u013466477 的回复:
有,你的exe文件不要有update这种词,换一个就好了。
我的exe文件没有update词,也有这个错误,原来有setup,后来修改了,还是不可用,还有其他方式能解决这个问题吗
碧海凌云 2016-11-16
  • 打赏
  • 举报
回复
楼主您好! 我也遇到遇到了同样胡问题,但是在户账户控制设置中设置为从不通知时,使用QProcess::startDetached 仍然无法启动exe程序,有什么好的解决办法吗?
Cirtis 2015-12-15
  • 打赏
  • 举报
回复
引用 4 楼 u013466477 的回复:
有,你的exe文件不要有update这种词,换一个就好了。
好的,多谢!
Cirtis 2015-12-11
  • 打赏
  • 举报
回复
注意:路径是含有空格的路径
冷静忍耐 2015-12-11
  • 打赏
  • 举报
回复
有,你的exe文件不要有update这种词,换一个就好了。
Cirtis 2015-12-11
  • 打赏
  • 举报
回复
引用 2 楼 u013466477 的回复:
[quote=引用 1 楼 qq965109624 的回复:]
注意:路径是含有空格的路径

加上参数试试,参数可以是空的。[/quote]

startDetached 的三种重载函数都有试过,结果都是一样的。


不过找到了原因,因为有些win7或者win7以上的系统的用户账户控制设置不是设置成从不通知,导致一些exe的启动需要管理员权限的(也就是直接打开exe的时候会弹出一个提示窗口,如下图所示)


目前的解决办法是,去用户账户控制设置中设置为从不通知,重启电脑就可以了。但是我想知道有没有别的QT的方法能够不通过设置用户的控制设置,直接能够达到启动程序的目的。
冷静忍耐 2015-12-11
  • 打赏
  • 举报
回复
引用 1 楼 qq965109624 的回复:
注意:路径是含有空格的路径
加上参数试试,参数可以是空的。

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧