Delphi中ShellExecute的妙用

2021-04-13 11:01:24 字數 2944 閱讀 9217

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是更多的被使用的,同時它並不是太複雜。下面舉例說明它的用法。開始乙個新的應用程式 開啟...