Windows API —— ShellExcute——打開文件


 

函數原型:

1     HINSTANCE ShellExecute(          
2         HWND hwnd,//指向父窗口的窗口句柄。此窗口接收應用程序產生的任何信息框
3         LPCTSTR lpOperation,//要執行的操作
4         LPCTSTR lpFile,//要打開或打印的文件或者是要打開或搜索的文件夾。 
5         LPCTSTR lpParameters,//如果是exe文件表示傳遞給他的參數
6         LPCTSTR lpDirectory,//默認目錄,當文件路徑問相對路徑時,如果不再當前目錄則需要指定默認目錄
7         INT nShowCmd//顯示方式
8         );

 

 

lpOperation:

 1  edit
 2 啟動編輯器打開文檔
 3  explore
 4  搜索由參數lpFile指定的文件夾,此文件應是一個文檔文件, 
 5  find
 6  Initiates a search beginning in the directory specified by lpDirectory.
 7  open
 8  此函數打開由參數lpFile指定的文件,此文件可以是一個可執行文件或文檔文件,也可是一個文件夾
 9  print
10  打印由參數lpFile指定的文件,此文件應是一個文檔文件,假如此文件是一個可執行文件,則打開此文件
11  NULL
12  此參數可以為空。這種情況下,函數用於打開由參數lpFile指定的文件

 nShowCmd

 1    SW_HIDE   隱藏這個窗體,並激活其他窗體。   
 2    SW_MAXIMIZE   最大化指定的窗體。   
 3    SW_MINIMIZE   最小化指定的窗體,並按順序激活最上層的窗體。   
 4    SW_RESTORE   激活並顯示窗體。如果窗體為最小化或者最大化,窗體恢復到原始大小和位置。應用程序當恢復一個最小化的窗體時將指定標記。   
 5    SW_SHOW   以當前的大小和位置激活並顯示窗體。   
 6    SW_SHOWDEFAULT     
 7    SW_SHOWMAXIMIZED   激活並最大化顯示窗體。   
 8    SW_SHOWMINIMIZED   激活並最小化現實窗體。   
 9    SW_SHOWMINNOACTIVE   最小化窗體,保持其激活狀態。   
10    SW_SHOWNA   以當前狀態顯示窗體,保持其激活狀態。   
11    SW_SHOWNOACTIVATE   以當前的大小和位置顯示窗體,並保持其激活狀態。   
12    SW_SHOWNORMAL   激活並顯示一個窗體。如果窗體為最大化或者最小化,窗體恢復到原始的大小和位置。當窗體第一次顯示的時候,應用程序記錄標記。

 

返回值:HINSTANCE:如果執行成功,返回一個大於32的值,否則返回以下值:

 1  0 系統內存或資源已耗盡. 
 2  ERROR_FILE_NOT_FOUND 文件未找到. 
 3  ERROR_PATH_NOT_FOUND 路徑未找到. 
 4  ERROR_BAD_FORMAT exe文件無效. 
 5  SE_ERR_ACCESSDENIED 操作系統拒絕訪問. 
 6  SE_ERR_ASSOCINCOMPLETE 文件名關聯不完整或非法. 
 7  SE_ERR_DDEBUSY 動態數據交換執行失敗因為正在執行. 
 8  SE_ERR_DDEFAIL 動態數據交換執行失敗. 
 9  SE_ERR_DDETIMEOUT 動態數據交換執行失敗因為超時 
10  SE_ERR_DLLNOTFOUND 指定dll未找到. 
11  SE_ERR_FNF 指定文件未找到. 
12  SE_ERR_NOASSOC 沒有關聯的應用程序,在嘗試打印不可打印的文件時也會返回該錯誤
13  SE_ERR_OOM 沒有足夠的內存來完成操作. 
14  SE_ERR_PNF 指定路徑為找到. 
15  SE_ERR_SHARE 共享違規. 
1     
2     //打開網頁
3     ShellExecute(NULL, _T("open"), _T("http://www.vckbase.com"), NULL, NULL, SW_SHOW);
4 
5     //打開文件
6     ShellExecute(NULL, _T("open"), _T("D:\\test.txt"), NULL, NULL, SW_SHOW);
7 
8     //執行程序
9     ShellExecute(NULL, _T("open"), _T("cmd.exe"), NULL, NULL, SW_SHOW);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM