用C++,調用瀏覽器打開一個網頁

用默認瀏覽器,就調用ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("http://www.baidu.com"), NULL, SW_SHOW);
有三個 Windows API 函數可以運行可執行檔WinExec、ShellExecute和CreateProcess。
 
ShellExecute的功能是運行一個外部程式(或者是開啓一個已註冊的文件、開啓一個目錄、列印一個文件等等),並對外部程式有一定的控制。
 
有幾個API函數都可以實現這些功能,但是在大多數情況下ShellExecute是更多的被使用的,同時它並不是太複雜。
 
函數原型:
HINSTANCE ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd );
 
參數說明: 
 
hwnd 視窗的名稱 (不知道這樣解釋對不對)
lpOperation 進行的操作,如"open","print","explore"分別對應 "開啓","列印","瀏覽", 也可以爲空(""),此時表示進行預設的操作。
lpFile 要操作的文件。
lpParameters 如果lpFile指定的是一個可執行檔則表示參數
lpDirectory 操作進行的目錄
nShowCmd 新的應用程式的運行方式。其可用的值如下:
SW_HIDE 隱藏
SW_MAXIMIZE 最大化
SW_MINIMIZE 最小化,並把Z order順序在此視窗之後(即視窗下一層)的視窗啓動
SW_RESTORE 啓動視窗並還原爲初始化大小
SW_SHOW 以當前大小和狀態啓動視窗
SW_SHOWDEFAULT 以預設方式運行
SW_SHOWMAXIMIZED 啓動視窗並最大化
SW_SHOWMINIMIZED 啓動視窗並最小化
SW_SHOWMINNOACTIVE 最小化但不改變當前啓動的視窗
SW_SHOWNA 以當前狀態顯示視窗但不改變當前啓動的視窗
SW_SHOWNOACTIVATE 以初始化大小顯示視窗但不改變當前啓動的視窗
SW_SHOWNORMAL 啓動並顯示視窗,如果是最大(小)化,視窗將會還原。第一次運行程式 時應該使用這個值
 
範例一:開啓 http://www.xspace.idv.tw/ 網站
view plaincopy to clipboardprint?
ShellExecute(Handle, "open", "http://www.xspace.idv.tw/",nil,nil, SW_SHOWNORMAL);  
 
如果將FileName參數設置爲"mailto:"協議格式,那麼該函數將啓動預設的郵件用戶端程式,
如 Microsoft Outlook(也包括Microsoft Outlook Express)或 Netscape Messanger。
 
範例二:寄信給 [email protected] (用戶帳號@郵件服務器地址)
 
ShellExecute(Handle, "open"," mailto:[email protected]", nil, nil, SW_SHOWNORMAL);  
 
開啓寫新郵件視窗,並自動填入收件人位置。
 
以下在介紹一些不一樣的用法:
開始一個新的應用程式
   
 
ShellExecute(Handle, "open", "c:\test\app.exe", nil, nil, SW_SHOW);  
開啓記事本,並開啓一個文件(系統能識別記事本應用程式的路徑,因此我們不必使用絕對路徑)
   
view plaincopy to clipboardprint?
ShellExecute(Handle, "open", "notepad", "c:\test\readme.txt", nil, SW_SHOW);  
列印一個文檔
   
 
ShellExecute(Handle, "print", "c:\test\test.doc", nil, nil, SW_SHOW);  
   注意:可能你會看到word暫時的被開啓,但它會自動關閉。
 
開啓一個HTML頁面
   
 
ShellExecute(Handle, "open", "http://www.xspace.idv.tw/", nil, nil, SW_SHOW);  
[/codes]
 
你能通過一個已經註冊的文件類型來開啓應用程式
   
 
ShellExecute(Handle, "open", "c:\test\readme.txt", nil, nil, SW_SHOW);  
windows Explorer 開啓一個目錄
   
 
ShellExecute(Handle, "explore", "c:\windows)", nil, nil, SW_SHOW);  
運行一個DOS命令並立即返回
   
 
ShellExecute(Handle, "open", "command.com", "/c copy file1.txt file2.txt", nil, SW_SHOW);  
運行一個DOS命令並保持DOS視窗存在
   
 
ShellExecute(Handle, "open", "command.com", "/k dir", nil, SW_SHOW);
發佈了18 篇原創文章 · 獲贊 9 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章