ShellExecute詳細用法(可以單獨開啟一個檔案)
阿新 • • 發佈:2018-11-09
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。