QT 用Windows的API函数,调用打开方式对话框

      下面的代码实现的功能是,先用Windows的ShellExecuteW函数以默认的方式打开文本文件,如果文件打开失败,则用WinExec函数调用打开方式对话框。

 

注意要引入头文件#include <windows.h>  和 #include <shellapi.h>


            QString file = "C:/新建/中文.txt";

            int nRes = 0;
           //以默认方式打开文件
	   nRes = (int)ShellExecuteW(NULL
                                      , QString("open").toStdWString().c_str()
                                      , file.toStdWString().c_str()
                                      , NULL
                                      , NULL
                                      , SW_SHOW
                                      );
            int nRes2 = 0;
            char* cmd = QString("rundll32 shell32, OpenAs_RunDLL %1")
                       .arg(file)
                       .toLocal8Bit().data();
            if(nRes <= SE_ERR_NOASSOC )
            {//ShellExecuteW 返回值小于31表示执行出现错误,
		//调用打开方式对话框
               nRes2 =WinExec(cmd
                              ,SW_SHOWNORMAL
                              );
            }

附相关资料:
http://baike.baidu.com/view/1044533.htm#sub1044533


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值