ShellExecute的使用方法

2021-05-27 15:27:04 字數 2027 閱讀 2887

shellexecute的使用方法

8:24 2011-8-23

shellexecute函式原型及引數含義如下:

shellexecute(

hwnd hwnd, //父視窗控制代碼

lpcstr lpoperation, //操作型別

lpcstr lpfile, //要進行操作的檔案或路徑

lpcstr lpparameters, //當lpoperation為「explore」時指定要傳遞的引數,通常設為null

lpcstr lpdirectory, //指定預設目錄,通常設為null

int nshowcmd //檔案開啟的方式,以通常方式還是最大化或最小化顯示

) 例子如下:

//呼叫計算器

shellexecute(null,"open","calc.exe",null,null,sw_shownormal);

//呼叫記事本

shellexecute(null,"open","notepad.exe",null,null,sw_shownormal);v

其設定為桌面視窗控制代碼(用getdesktopwindow函式獲得)。

●operation:用於指定要進行的操作。其中「open」操作表示執行由filename引數指定的程式,或開啟由filename引數指定的檔案或資料夾;「print」操作表示列印由filename

引數指定的檔案;「explore」操作表示瀏覽由filename引數指定的資料夾。當引數設為nil時,表示執行預設操作「open」。

●filename:用於指定要開啟的檔名、要執行的程式檔名或要瀏覽的資料夾名。

●parameters:若filename引數是乙個可執行程式,則此引數指定命令列引數,否則此引數應為nil或pchar(0)。

●directory:用於指定預設目錄。

●showcmd:若filename引數是乙個可執行程式,則此引數指定程式視窗的初始顯示方式,否則此引數應設定為0。

若shellexecute函式呼叫成功,則返回值為被執行程式的例項控制代碼。若返回值小於32,則表示出現錯誤。

上述僅僅是shellexecute函式的標準用法,下面將介紹它的特殊用法。

2.特殊用法

http協議處理程式(protocols handler)的設定確定啟動哪個瀏覽器。

如:shellexecute(handle, 『open』, null, null, sw_shownormal);

如:shellexecute(handle, 『open』, sw_shownormal);

如果將filename引數設定為「mailto:」協議格式,那麼該函式將啟動預設郵件客戶程式,如microsoft outlook(也包括microsoft outlook express)或netscape messanger。若

使用者機器中安裝了多個郵件客戶程式,則該函式將根據windows 9x/nt登錄檔中mailto協議處理程式的設定確定啟動哪個郵件客戶程式。

格式一:mailto:

如:shellexecute(handle,『open』, 『mailto:』, null, null, sw_shownormal);開啟新郵件視窗。

如:shellexecute(handle, 『open』,『 mailto:[email protected]』, null, null, sw_shownormal);開啟新郵件視窗,並自動填入收件人位址。若指定多個收件人位址,則

收件人位址之間必須用分號或逗號分隔開(下同)。

如:shellexecute(handle, 『open』, 『 mailto:[email protected]?subject=hello&body=this is a test』, null, null, sw_shownormal);開啟新郵件視窗,並自動填入

收件人位址、郵件主題和郵件正文。若郵件正文包括多行文字,則必須在每行文字之間加入換行轉義字元%0a。

#pragma comment(lib,"shell32.lib")

int main()

ShellExecute使用的特殊性

我這裡想說的是我在使用中遇到的乙個情況 大家都知道,很多程式是安裝到c program files目錄下的,而一般的dos命令,預設空格後面就是要執行的引數。shellexecute中如果使用了絕對路徑,也會出現這個問題。那麼,當如果使用了絕對路徑的時候,如果是執行c program files這樣...

關閉使用ShellExecute開啟的程序

最近做乙個專案使用到 shellexecute 來開啟乙個帶引數的外部 exe檔案,關閉時遇到不少問題,最終解決,總結如下。對於關閉 shellexecute 開啟的程序視窗,網上比較多的是用 findwindow 方式,可惜我也不知道這視窗的名稱。通過查詢資料找到以下方式可以關閉程序 lpproc...

VB使用ShellExecute呼叫其他程式

2007 12 24 14 06 30 vb使用shellexecute呼叫其他程式 shellexecute api是功能強大的函式呼叫介面,它不僅可以呼叫不帶引數的可執行檔案,還可以執行帶引數的檔案,如cmd ping 127.0.0.1,還有可以開啟指定的網頁和收發郵件的功能.宣告 priva...