平時在delphi寫代碼的過程中總是能遇到ShellExecute函數,於是索性將它的用法整理一下,因為我在微軟的網站上也沒能查到個詳細解釋(當然我查的中文版,俺菜嘛)
ShellExecute函數原型及參數含義如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
●hWnd:用於指定父視窗控制代碼。當函數調用過程出現錯誤時,它將作為Windows訊息視窗的父視窗。例如,可以將其設定為應用程式主視窗控制代碼,即 Application.Handle,也可以將其設定為桌面視窗控制代碼(用GetDesktopWindow函數獲得)。
●Operation:用於指定要進行的操作。
其中“open”動作表示執行由FileName參數指定的程式,或開啟由FileName參數指定的檔案或檔案夾;
“print”動作表示列印由FileName參數指定的檔案;
“explore”動作表示瀏覽由FileName參數指定的檔案夾。
當參數設為nil時,表示執行預設操作“open”;
edit 編輯;
find 搜尋
最後這兩個是在別的網站上找到的,沒有驗證是不是這樣。
●FileName:用於指定要開啟的檔案名稱、要執行的程式檔案名稱或要瀏覽的檔案夾名。
●Parameters:若FileName參數是一個可執行程式,則此參數指定命令列參數,否則此參數應為nil或PChar(0)。
●Directory:用於指定預設目錄。
●ShowCmd:若FileName參數是一個可執行程式,則此參數指定程式視窗的初始顯示方式,否則此參數應設定為0
此參數可為下列值之一
| DisplayState |
值 |
含義 |
| HIDE |
0 |
隱藏視窗並啟用其他視窗 |
| SHOWNORMAL |
1 |
啟用並顯示一個視窗 如果視窗是最小化或最大化, 將其還原到其原始大小和位置 (同 RESTORE)
|
| SHOWMINIMIZED |
2 |
啟用視窗並最小化 |
| SHOWMAXIMIZED |
3 |
啟用視窗並最大化 |
| SHOWMINNOACTIVATE |
4 |
以最近的大小和位置顯示視窗 當前使用中視窗保持活動
|
| SHOW |
5 |
啟用視窗並顯示其當前大小和位置中 |
| MINIMIZE |
6 |
最小化指定視窗並啟用系統列表中頂層視窗 |
| SHOWMINNOACTIVE |
7 |
以最小化模式顯示視窗 當前使用中視窗保持活動
|
| SHOWNA |
8 |
以最近的狀態顯示視窗 當前使用中視窗保持活動
|
| RESTORE |
9 |
啟用視窗並顯示 如果視窗是最小化或最大化,還原到其原始大小和位置 (同SHOWNORMAL)
|
補充:
MAXIMIZE : 已最大化的視窗
若ShellExecute函數調用成功,則傳回值為被執行程式的執行個體控制代碼。若傳回值小於32,則失敗,有下列幾種回應值:
2 錯誤的關聯 (例如:不合法的 URL)
29 關聯失敗
30 關聯應用程式忙碌中...
31 沒有關聯任何應用程式。