http://www.dev.idv.tw/mediawiki/index.php/ShellExecute的用法
HINSTANCE ShellExecute( HWND hwnd, // handle to parent window LPCTSTR lpOperation, // pointer to string that specifies operation to perform LPCTSTR lpFile, // pointer to filename or folder name string LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters LPCTSTR lpDirectory, // pointer to string that specifies default directory INT nShowCmd // whether file is shown when opened );
其中hwnd是主要執行該程式的視窗,通常就是我們自己的程式視窗。不過也可以給NULL,表示沒有特定的視窗。 lpOperation是您要執行的動 作,這個動作有三個:
- open -- open的方式是讓系統自己依據檔案的型態來決定以何種方式開啟它。舉例來說,如果lpFile是一個可執行檔,那麼這個檔案就會 被執行。如果他是一個文件檔,則會被對應的軟體所開啟。如果開啟的是一個目錄,自然就是用Explorer來開啟囉。
- print -- print很明顯的就是將檔案送到 printer queue裡面去列印。
- explorer -- 原則上只能用在目錄,是用來開啟目錄用的。
lpFile正如前面所說就是一個表示要開啟的檔案。而lpParameters主要用於lpFile所指向的是一個可執行檔時,用這個參數將執行檔所需 的參數傳給它。而lpDirectory是進行開啟動作時的預設路徑,如果是NULL,表示為預設路徑。 最後一個nShowCmd主要表示該檔案開啟時的行為,主要有下面幾個值可用:
- SW_HIDE 執行檔案時,將視窗隱藏起來。.
- SW_MAXIMIZE 將視窗最大化執行
- SW_MINIMIZE 將視窗最小化執行
- SW_RESTORE 若視窗執行時是最小化,透過此參數,可將其回復原來大小顯示。
- SW_SHOW 以視窗預設大小顯示,並且設為主動視窗
- SW_SHOWDEFAULT 同SW_SHOW
- SW_SHOWMAXIMIZED 執行時將視窗最大化,並且設定為主動視窗。
- SW_SHOWMINIMIZED 執行時將視窗最小化,並且設定為主動視窗。
- SW_SHOWMINNOACTIVE 執行時將視窗最小化,並且不會變動現行的主動視窗。
- SW_SHOWNA 執行時並不會變動現行的主動視窗。
- SW_SHOWNOACTIVATE 同SW_SHOWNA。
- SW_SHOWNORMAL 當程式執行時,若為最大化或最小化,將會回復到原來的大小,並且設定為主動視窗。
下面幾個例子介紹幾個常見的用法:
// 開啟某個目錄: ShellExecute(NULL, "open", "c:\\windows", NULL, NULL, 0); // 開啟某個程式: ShellExecute(NULL, "open", "c:\\windows\\notepad.exe", "c:\\xxx.txt", NULL, SW_SHOWNORMAL); // 列印某份文件: ShellExecute(NULL, "print", "c:\\xxx.doc", NULL, NULL, 0); // 開啟某個網頁: ShellExecute(NULL, "open", "https://www.google.com/", NULL, NULL, 0);
沒有留言:
張貼留言