Qt調用默認程序打開文件

需要調用系統的默認程序打開某文件,沒有找到Qt的實現方法,只能調用Windows的API:ShellExecute。

 

以下代碼是從我自己的工程拷出來的,可以運行的:

1、添加頭文件

  1. #include "Windows.h" 
  2. #include "ShellAPI.h" 

2、調用ShellExecute

  1. ShellExecuteW(NULL,QString("open").toStdWString().c_str(),QString("c://boot.ini").toStdWString().c_str(),NULL,NULL,SW_SHOW); 

這裏注意一下QString的類型是不能直接作爲ShellExecute的參數的。

編譯一下,如果這樣能運行,請留言告訴我一聲,因爲在我的機器上面會有以下鏈接報錯:

savesuccessdialog.obj:-1: 錯誤:LNK2019: unresolved external symbol __imp__ShellExecuteW@24 referenced in function "private: void __thiscall SaveSuccessDialog::on_btnOpenFile_clicked(void)" (?on_btnOpenFile_clicked@SaveSuccessDialog@@AAEXXZ)

release\CoreExe.exe:-1: 錯誤:LNK1120: 1 unresolved externals

這是因爲沒有引入相應的庫,要在工程文件*.pro中加上一句:

 

  1. LIBS += shell32.lib 

現在可以順利編譯運行了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章