shellexecute的功能是執行乙個外部程式(或者是開啟乙個已註冊的檔案、開啟乙個目錄、列印乙個檔案等等),並對外部程式有一定的控制。
有幾個api函式都可以實現這些功能,但是在大多數情況下shellexecute是更多的被使用的,同時它並不是太複雜。下面舉例說明它的用法。
開啟記事本,並開啟乙個檔案(系統能識別記事本應用程式的路徑,因此我們不必使用絕對路徑)
shellexecute(handle, 'open', pchar('notepad'), pchar('c:/test/readme.txt'), nil, sw_show);
列印乙個文件
shellexecute(handle, 'print', pchar('c:/test/test.doc'), nil, nil, sw_show);
注意:可能你會看到word暫時的被開啟,但它會自動關閉。
開啟乙個html頁面
你能通過乙個已經註冊的檔案型別來開啟應用程式
shellexecute(handle, 'open', pchar('c:/test/readme.txt'), nil, nil, sw_show);
用windows explorer 開啟乙個目錄
shellexecute(handle, 'explore', pchar('c:/windows)', nil, nil, sw_show);
執行乙個dos命令並立即返回
shellexecute(handle, 'open', pchar('command.com'), pchar('/c copy file1.txt file2.txt'), nil, sw_show);
執行乙個dos命令並保持dos視窗存在
shellexecute(handle, 'open', pchar('command.com'), pchar('/k dir'), nil, sw_show);
shellexecute詳解
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
)* params(引數解釋)
hwnd
指定父視窗控制代碼。這個視窗接收工程產生的所有訊息。例如:乙個工程可以通過訊息框報告錯誤。
lpoperation
以乙個以null結束的字串描述操作的執行。以下的操作字串是有效的:
行號 引數 含義
1 「open」 函式開啟由lpfile指定的檔案。這個檔案必須是可執行檔案或者文件檔案。資料夾必須是可開啟的資料夾。
2 「print」 函式列印由lpfile指定的檔案。這個檔案應該是文件檔案。如果指定的檔案是可執行檔案,函式將以open的方式開啟這個檔案。
3 「explore」 函式將搜尋由lpfile指定的資料夾。
lpoperation引數如果為null,函式將以open的方式開啟由lpfile指定的檔案。
lpfile
以乙個null結束的字串描述開啟或者列印指定的檔案,或者開啟或者搜尋指定的
資料夾。函式可以開啟乙個指定的檔案或者資料夾,也可以列印乙個文件檔案。
lpparameters
如果lpfile指定的是乙個可執行檔案,lpparameters以乙個以null結束的字串指定該執行檔案傳給應用軟體的引數。
行號 引數 含義
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 啟用並顯示乙個窗體。如果窗體為最大化或者最小化,窗體恢復到原始的大小和位置。當窗體第一次顯示的時候,應用程式記錄標記。
如果lpfield指定的是乙個文件檔案,lpparameters應該為null。
lpdirectory
以乙個以null結束的字串指定檔案開始執行的預設目錄。
nshowcmd
如果lpfield指定了乙個可執行檔案,nshowcmd指定這個檔案在被開啟時如何顯示。這個引數可以是以下值中的任何乙個:
如果lpfield指定的是文件檔案,nshowcmd應該為0。
delphi中的指標
從最初的 pascal 發展至今 的object pascal 可以說在指標運用上,絲毫不會遜色於 c語言的指標。以下內容分為八個部分,分別是 一 型別指標的定義 二 無型別指標的定義 三 指標的解除引用 四 取位址 指標賦值 五 指標運算 六 動態記憶體分配 七 字元陣列的運算 八 函式指標 對於...
delphi中的指標
從最初的 pascal 發展至今 的object pascal 可以說在指標運用上,絲毫不會遜色於 c語言的指標。以下內容分為八個部分,分別是 一 型別指標的定義 二 無型別指標的定義 三 指標的解除引用 四 取位址 指標賦值 五 指標運算 六 動態記憶體分配 七 字元陣列的運算 八 函式指標 對於...
Delphi中ShellExecute的妙用
shellexecute的功能是執行乙個外部程式 或者是開啟乙個已註冊的檔案 開啟乙個目錄 列印乙個檔案等等 並對外部程式有一定的控制。有幾個api函式都可以實現這些功能,但是在大多數情況下shellexecute是更多的被使用的,同時它並不是太複雜。下面舉例說明它的用法。開始乙個新的應用程式 開啟...