ShellExecute的使用方法

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

●hWnd:用於指定父窗口句柄。當函數調用過程出現錯誤時,它將作爲Windows消息窗口的父窗口。例如,可以將其設置爲應用程序主窗口句柄,即Application.Handle,也可以將

其設置爲桌面窗口句柄(用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.特殊用法

如果將FileName參數設置爲“http:”協議格式,那麼該函數將打開默認瀏覽器並鏈接到指定的URL地址。若用戶機器中安裝了多個瀏覽器,則該函數將根據Windows 9x/NT註冊表中

http協議處理程序(Protocols Handler)的設置確定啓動哪個瀏覽器。

格式一:http://網站域名。

如:ShellExecute(handle, ‘open’, http://www.neu.edu.cn’, NULL, NULL, SW_SHOWNORMAL);

格式二:http://網站域名/網頁文件名。

如:ShellExecute(handle, ‘open’, http://www.neu.edu.cn/default.htm’,NULL,NULL, SW_SHOWNORMAL);

如果將FileName參數設置爲“mailto:”協議格式,那麼該函數將啓動默認郵件客戶程序,如Microsoft Outlook(也包括Microsoft Outlook Express)或Netscape Messanger。若

用戶機器中安裝了多個郵件客戶程序,則該函數將根據Windows 9x/NT註冊表中mailto協議處理程序的設置確定啓動哪個郵件客戶程序。

格式一:mailto:

如:ShellExecute(handle,‘open’, ‘mailto:’, NULL, NULL, SW_SHOWNORMAL);打開新郵件窗口。

格式二:mailto:用戶賬號@郵件服務器地址

如:ShellExecute(handle, ‘open’,‘ mailto:[email protected], NULL, NULL, SW_SHOWNORMAL);打開新郵件窗口,並自動填入收件人地址。若指定多個收件人地址,則

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

格式三:mailto:用戶賬號@郵件服務器地址?subject=郵件主題&body=郵件正文

如:ShellExecute(handle, ‘open’, ‘ mailto:[email protected]?subject=Hello&Body=This is a test’, NULL, NULL, SW_SHOWNORMAL);打開新郵件窗口,並自動填入

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


附:這個代碼運行後可以打開新浪網站。
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <windows.h>

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

int main()
{
 LPCTSTR str;
 str = _T("http://www.sina.com.cn");
 HINSTANCE h =ShellExecuteW(NULL,_T("open"),str,NULL,NULL,SW_SHOW);
 return  0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章