文章編號: 224816 - 上次校閱: 2007年7月31日 - 版次: 2.1

使用 ShellExecute 啟動預設的 Web 瀏覽器

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

本文提供如何註冊預設的 Web 瀏覽器和如何開頭 ShellExecute 應用程式發展介面 (API) 的預設 Web 瀏覽器的一般資訊。 它也提供詳細資料如何 ShellExecute 導致 Microsoft Internet Explorer,移到統一資源定位器 (URL)。

其他相關資訊

判定預設的 Web 瀏覽器

預設情況下,Microsoft Internet Explorer 會檢查看看它是否預設 Web 瀏覽器啟動每一次。如果文件 (HTML) 的網際網路檔案與不同的瀏覽器相關 Internet Explorer 啟動時,Internet Explorer 會辨識這並不預設瀏覽器,然後提示您進行預設瀏覽器。

當您選取 設定預設的瀏覽器 在 Internet Explorer 中與在較新版本的 Netscape 時, 瀏覽器登錄本身至 所有 下列機碼,讓本身 (夾雜在撰寫的其他項目) 的預設瀏覽器。HKEY_CLASSES_ROOT\.htm HKEY_CLASSES_ROOT\.html HKEY_CLASSES_ROOT\http\shell\open\command HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application HKEY_CLASSES_ROOT\ftp\shell\open\command HKEY_CLASSES_ROOT\ftp\shell\open\ddeexec\Application HKEY_CLASSES_ROOT\gopher\shell\open\command HKEY_CLASSES_ROOT\gopher\shell\open\ddeexec\Application


從您的應用程式啟動預設的 Web 瀏覽器

呼叫 ShellExecute API 並傳遞 URL。 是最簡單的方法,您可以從您的應用程式啟動預設的 Web 瀏覽器。如果目前執行預設的 Web 瀏覽器,ShellExecute 會告訴前往您統一資源定位器 (URL) 來執行該執行個體。如果它不執行 ShellExecute 啟動應用程式,然後再瀏覽至您的 URL。

如果使用 Microsoft Visual C++ 開發應用程式下列程式碼會說明如何呼叫 ShellExecute
LONG r = ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);
				
如果您使用 Microsoft Visual Basic,您必須插入 ShellExecute 宣告您的專案中。您可以找到這個宣告 Win32api.txt 檔案位於您的 Microsoft Visual Studio 安裝的子資料夾中。選擇性地,您可能會從 API 文字檢視器 」 工具隨附 Visual Studio 6.0 複製它。

您的專案中插入 ShellExecute API,請依照下列步驟執行:
  1. 在 Visual Basic 中建立新專案。
  2. 選取 標準執行檔
  3. 您的表單中加入按鈕。
  4. 將下列程式碼中
    Private Declare Function ShellExecute _
                                Lib "shell32.dll" _
                                Alias "ShellExecuteA"( _
                                ByVal hwnd As Long, _
                                ByVal lpOperation As String, _
                                ByVal lpFile As String, _
                                ByVal lpParameters As String, _
                                ByVal lpDirectory As String, _
                                ByVal nShowCmd As Long) _
                                As Long
    
    Private Sub Command1_Click()
       Dim r As Long
       r = ShellExecute(0, "open", "http://www.microsoft.com", 0, 0, 1)
    End Sub
    						
    表單。
  5. 執行您的專案,然後按一下 [按鈕跳至您使用預設的 Web 瀏覽器的 URL。
ShellExecute API 是 Microsoft Windows 95 和 Microsoft Windows NT 3.1 上支援和更新版本。您可以使用 ShellExecute 來啟動在 Win32 中所有的預設 Web 瀏覽器版本的 Microsoft Internet Explorer 從 1.0 和之後的版本。不支援這項技巧,在 Microsoft Windows 3.x,UNIX,或 MacIntosh 上平台。

ShellExecute 的運作方式

下列的背景是僅供資訊參考之用。 提供,讓您進一步瞭解您的應用程式與操作系統互動的方式。基準上繪製從這項資訊的假設您設計。要注意這項功能可能會變更在未來版本的 Microsoft 產品。

ShellExecute 解譯傳遞 URL 的方式

ShellExecute 剖析傳遞給它,以便 ShellExecute 可以擷取通訊協定規範或一個副檔名的字串。接下來,ShellExecute 在登錄中的外觀,然後再使用來判斷要啟動哪個應用程式的 [通訊協定規範或副檔名。如果您傳遞 http://www.microsoft.comShellExecuteShellExecute 會辨識 http:// 子字串,做為通訊協定會導致 ShellExecute 檢視
HKEY_CLASSES_ROOT\http\shell\open
如需有關如何執行資訊。如果您傳遞 myfile.htmShellExecuteShellExecute 會辨識.htm"子字串視為擴充功能。這會使檢視
HKEY_CLASSES_ROOT\.htm
,可通往
HKEY_CLASSES_ROOT\htmlfile\shell\open
ShellExecute

通常,最好是完整例如傳遞至 ShellExecute,字串中指定您的 URL: http://www.microsoft.comwww.microsoft.com 代替。當您完全指定 URL 時,您要確定 ShellExecute 知道您想要完全哪些通訊協定。 依預設值,但是,ShellExecute 偵測到包含 www.*ftp.*,某些模式而再對應這些模式至超文字傳輸通訊協定 (HTTP) 通訊協定和 「 檔案傳輸通訊協定 (FTP),分別。

ShellExecute 如何決定是否要啟動新的執行個體

當透過登錄看起來 ShellExecute 時,它會尋找
shell\open
子機碼。如果定義
shell\open\ddeexec
金鑰動態資料交換 (DDE) 訊息與指定的應用程式 IExploreWWW_OpenURL 廣播給所有最上層的視窗,在桌面上的 「 」 主題。第一個應用程式以回應這個訊息是應用程式,前往要求的 URL。如果沒有應用程式回應這個 DDE 訊息,ShellExecute 使用
shell\open\command
子機碼,以啟動應用程式中所包含的資訊。它然後 re-broadcasts DDE 訊息移至要求的 URL。

?考

如需有關預設 Web 瀏覽器,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
153774? (http://support.microsoft.com/kb/153774/ ) Internet Explorer 不設定為預設瀏覽器
在本文所討論的協力廠商產品是由 Microsoft 以外的公司所製造的。Microsoft 不保證,暗示或其他有關這些產品的效能或可靠性。

這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 5.5 SP1
  • Microsoft Internet Explorer (Programming) 5.5 SP2
  • Microsoft Internet Explorer (Programming) 6 (SP1)
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
關鍵字:?
kbmt kbinfo kbwebbrowser KB224816 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:224816? (http://support.microsoft.com/kb/224816/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。