vba實作打開網頁,然后截屏,網頁鏈接來自excel表格,需要批處理網頁鏈接!有大佬知道么!
uj5u.com熱心網友回復:
可以參考這篇文章:https://www.cnblogs.com/snowdream/archive/2011/05/16/get-webpage-snapshot-by-webbrowser-control.html
通過 WebBrowser 獲取網頁截圖
本文介紹通過WinForm中的控制元件WebBroswer獲取網頁截圖。這個方法可以截取到大于螢屏區域的網頁截圖,但是對于網頁上的Flash或者一些控制元件無法獲取到影像。因為是WinForm的控制元件,所以未在WPF中測驗。
在界面上加入一個文本框和一個按鈕,文本框用于輸入地址。在按鈕按下的事件處理函式中初始化一個WebBrowser并打開網頁,但它不在界面上顯示。
復制代碼
1 /// <summary>
2 /// 按鈕按下事件處理函式
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 private void SaveSnapshot_Click(object sender, EventArgs e)
7 {
8 WebBrowser webBrowser = new WebBrowser(); // 創建一個WebBrowser
9 webBrowser.ScrollBarsEnabled = false; // 隱藏滾動條
10 webBrowser.Navigate(address.Text); // 打開網頁
11 webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加網頁加載完成事件處理函式
12 }
復制代碼
在網頁加載完成的處理函式中獲取截圖,調節圖片大小并保存。
復制代碼
1 /// <summary>
2 /// 網頁加載完成事件處理函式
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
7 {
8 WebBrowser webBrowser = (WebBrowser)sender;
9
10 // 網頁加載完畢才保存
11 if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
12 {
13 // 獲取網頁高度和寬度,也可以自己設定
14 int height = webBrowser.Document.Body.ScrollRectangle.Height;
15 int width = webBrowser.Document.Body.ScrollRectangle.Width;
16
17 // 調節webBrowser的高度和寬度
18 webBrowser.Height = height;
19 webBrowser.Width = width;
20
21 Bitmap bitmap = new Bitmap(width, height); // 創建高度和寬度與網頁相同的圖片
22 Rectangle rectangle=new Rectangle(0,0,width,height); // 繪圖區域
23 webBrowser.DrawToBitmap(bitmap, rectangle); // 截圖
24
25 // 保存圖片對話框
26 SaveFileDialog saveFileDialog = new SaveFileDialog();
27 saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
28 saveFileDialog.ShowDialog();
29
30 bitmap.Save(saveFileDialog.FileName); // 保存圖片
31 }
32 }
復制代碼
示例下載(Visual Studio 2010)
分類: .NET Framework
標簽: C#, .NET Framework
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/26860.html
標籤:VBA
上一篇:求助用VBA爬取網頁資料填入表格
下一篇:vbs
