1. 程式人生 > >儲存瀏覽器控制元件中的網頁

儲存瀏覽器控制元件中的網頁

如果需要呼叫預設的儲存對話方塊,可以呼叫IDM_SAVE命令儲存網頁 。由於安全原因,這個命令會總是顯示一個檔案儲存對話方塊,呼叫命令的時候指定OLECMDEXECOPT_DONTPROMPTUSER時也不例外。這也意味著IDM_SAVE的文件中的描述是錯誤的。
注意儲存為mht格式的選項只有自動化IE時才會出現,在嵌入瀏覽器控制元件時沒有,而且這個功能需要Outlook Express 5.0或更高版本的支援
如果需要繞過儲存對話方塊把網頁儲存到本地檔案,那麼你可以查詢文件的IPersistFile介面,之後呼叫其Save方法。注意,網頁中的指令碼生成的內容需要將網頁切換到設計模式(DesignMode="On")之後儲存。如果你想同時儲存指令碼、影象和連結樣式表到同一個檔案,你需要
分析網頁內容
,找到這些元素的網址,然後去Internet Explorer的快取資料夾查詢這些檔案,最後把這些檔案儲存到mht檔案中。你可以使用CDO(使用早期繫結的話需要檢測作業系統版本)或者.Net類庫中的System.Web.Mail(CDO的封裝)/System.Net.Mail來儲存檔案到MHTML格式。
如果網頁是靜態的,用UrlDownloadToFile比使用瀏覽器控制元件的效率更高,因為這樣不用下載指令碼、影象和連結樣式表,以及執行指令碼,但是這也可能導致網頁中的指令碼生成的內容缺失。如果你需要一個無介面的HTML分析器,你可以建立一個MSHTML文件物件,參考MSDN中的WalkAll示例