1. 程式人生 > >ShellExecute詳細用法(可以單獨開啟一個檔案)

ShellExecute詳細用法(可以單獨開啟一個檔案)

hellExecute的功能是執行一個外部程式,或者開啟一個已註冊的檔案、開啟一個目錄、列印檔案等等功能,它可以開啟電腦內的任何檔案,也可以開啟URL。

函式的原型:

 

複製程式碼

1   HINSTANCE ShellExecute( 
2           HWND hwnd, 
3           LPCTSTR lpOperation,
4           LPCTSTR lpFile, 
5           LPCTSTR lpParameters, 
6           LPCTSTR lpDirectory, 
7           INT nShowCmd
8        );

複製程式碼

 

 

hWnd:

    用於指定父視窗的控制代碼。當函式呼叫過程中出現錯誤時,它將作為Windows訊息視窗的父視窗。

lpOperation:

    用於指定要進行的操作,當引數為NULL時,預設操作"open"。

   "open",表示執行由lpFile引數指定的程式,或者開啟由lpFile引數指定的檔案或資料夾。

    "explort",表示開啟由lpFile引數指定的資料夾。

    "print",表示列印由lpFile引數指定的檔案。

lpParameters:

    若lpFile引數是一個可執行檔案,則此引數指定命令列引數,否則此引數應設為NULL。

lpDirectory:

    用於指定預設目錄。

nShowCmd:

    用於指定程式視窗初始顯示方式。 

#define SW_HIDE             0    /*隱藏窗體,並激活另一個窗體*/
#define SW_SHOWNORMAL       1     /*與SW_RESTORE相同*/
#define SW_SHOWMINIMIZED    2     /*啟用並以最小化的形式顯示窗體*/
#define SW_SHOWMAXIMIZED    3      /*啟用並以最大化的形式顯示窗體*/
#define SW_MAXIMIZE         3      /*最大化指定的窗體*/
#define SW_SHOWNOACTIVATE   4       /*以上次的狀態顯示指定的窗體,但不啟用它*/
#define SW_SHOW             5      /*啟用窗體,並將其顯示在當前的大小和位置上*/
#define SW_MINIMIZE         6      /*最小化指定的窗體,並激活另一個窗體*/
#define SW_SHOWMINNOACTIVE  7       /*以最小化形式顯示指定的窗體,但不啟用它*/
#define SW_SHOWNA           8       /*以當前的狀態顯示指定的窗體,但不啟用它*/
#define SW_RESTORE          9       /*以原本的大小和位置,啟用並顯示指定的窗體*/
#define SW_SHOWDEFAULT      10      /*設定顯示的狀態由STARTUPINFO結構體指定*/

 

開啟計算器:

 

1 ShellExecute(this->m_hWnd, "open", "calc.exe",NULL, NULL,SW_SHOWMAXIMIZED );

開啟一個指定的程式:

1 ShellExecute(this->m_hWnd, "open","D:\\Program Files (x86)\\Notepad++\\notepad++.exe",NULL,NULL,SW_SHOWMAXIMIZED );  
2 ShellExecute(this->m_hWnd, "open", "notepad++.exe",NULL, "D:\\Program Files (x86)\\Notepad++",SW_SHOWMAXIMIZED ); 
3 ShellExecute(this->m_hWnd,"open", "notepad++.exe",NULL, "D:\\Program Files (x86)\\Notepad++\\",SW_SHOWMAXIMIZED );
4 //三個語句其結果都是一樣 

 

開啟一個指定的檔案:

1 ShellExecute(this->m_hWnd,"open", "F:\\C\\MFC\\MFC.pdf",NULL,NULL,SW_SHOWMAXIMIZED );  
2 ShellExecute(this->m_hWnd,"open", "MFC.pdf",NULL,"F:\\C\\MFC\\",SW_SHOWMAXIMIZED );

開啟一個指定的資料夾:

1 ShellExecute(this->m_hWnd, "open", "F:\\C\\MFC",NULL,NULL,SW_SHOWMAXIMIZED );  
2 ShellExecute(this->m_hWnd, "open", NULL,NULL,"F:\\C\\MFC",SW_SHOWMAXIMIZED );  
3 ShellExecute(this->m_hWnd,"explore", NULL,NULL,"F:\\C\\MFC",SW_SHOWMAXIMIZED );

開啟URL:

1 ShellExecute(this->m_hWnd, "open", "http://tmxk.org/2012/", NULL, NULL,SW_SHOWMAXIMIZED );

hWnd,可以設為NULL。