码迷,mamicode.com
首页 > 其他好文 > 详细

在Qt中用默认程序打开文件

时间:2015-05-04 15:45:11      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:qt shellexecute 默认程序打开文件 explorer.exe createprocess qprocess

用法:    QProcess::execute("explorer 文件名");
例:        QProcess::execute("explorer c:\\123.txt");

 

----------------------------------------------------------------------

 

应该早有大虾发现了这个方法,只是我没搜到,于是有了下面这篇聒噪的探索文章。

 

如何在Qt中用默认程序打开文件。比如给个"123.html"参数,就能用浏览器打开。
网上搜了一下,多数的解决方法是用ShellExecute这个Windows Api函数。
可行,但总希望能找到一个Qt的Api来使用。


继续找资料。发现一个QProcess类。
测试QProcess::execute("notepad.exe");
成功打开记事本。
以为有戏。。


接着测试 --- ---
QProcess::execute("start c:\\123.txt");
失败了。。心凉了半截。


查看QProcess::execute代码,发现最终其实就是调用windows的CreateProcess函数。
start估计不是个程序,只是个命令,所以报了个无法找到程序的错误。
反过来说只要找到一个程序,这个程序能用默认程序打开文件就行了。


继续找资料。
在一大堆信息中苦苦寻找,终于在一个角落发现有人提到了explorer.exe。
很熟悉的名字吧。这个就是windows的文件资源管理器。打开进程管理器,总会见到几个在运行。
地址如下(感谢那位网友)
http://zhidao.baidu.com/link?url=tlp1jLfEsBICWgnTeuKT8hiahA7gFtghzoQ73ufI0frbI5Uw03mI79n5Qi8739oq68nlws4wSRlW0Jmk3wU8Ya
冥冥之中,有个声音在对我说,这就是解决问题的钥匙了。^-^


接着查找explorer.exe的参数用法。
闲话少说,经过在cmd一番测试。得出用法是explorer filename.
例:explorer c:\123.txt
加不加引号随意,要注意的是用反斜杠,在cmd窗口只用一杠就行了,否则就会打开我的文档。

 

在Qt中测试代码
QProcess::execute("explorer c:\\123.txt");
成功打开!开心^-^

本文出自 “三人乘虎” 博客,请务必保留此出处http://darhx.blog.51cto.com/7920146/1641680

在Qt中用默认程序打开文件

标签:qt shellexecute 默认程序打开文件 explorer.exe createprocess qprocess

原文地址:http://darhx.blog.51cto.com/7920146/1641680

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!