C# IE瀏覽器操做類

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using mshtml;
using SHDocVw;

namespace WebClick_Tool
{
/// <summary>
/// IE瀏覽器操做
/// </summary>
public class IETool
{
/// <summary>
/// IE句柄
/// </summary>
public int IEHandle { get; set; }
/// <summary>
/// 瀏覽器
/// </summary>
public IWebBrowser2 IEBrowser { get; set; }
/// <summary>
/// 當前頁面Document
/// </summary>
public HTMLDocumentClass Document { get; set; }
/// <summary>
/// 瀏覽器標頭高度
/// </summary>
public int BrowserH { get; set; }
/// <summary>
/// 初始化是否成功
/// </summary>
public bool Suc { get; set; }
/// <summary>
/// 頭部標題
/// </summary>
public string HeadTitle { get; set; }
/// <summary>
/// 失敗頭部標題
/// </summary>
public string BadHeadTitle { get; set; }
/// <summary>
/// 瀏覽器高度
/// </summary>
public int HeighBro { get; set; }

public IETool(string HeadTitleO,string BadTitle)
{
HeadTitle = HeadTitleO;
BadHeadTitle = BadTitle;
HeighBro = -1;
if (GetHandleOfBrowser())
Suc = true;
else
Suc = false;
try
{
GetHtml(false);
}
catch { }
}
#region 系統API
/// <summary>
/// 找窗口句柄
/// </summary>
/// <param name="lpClassName"></param>
/// <param name="lpWindowName"></param>
/// <returns></returns>
[DllImport("user32", EntryPoint = "FindWindow")]
public static extern int FindWindowA(string lpClassName, string lpWindowName);
/// <summary>
/// 窗體發送消息
/// </summary>
/// <param name="hWnd"></param>
/// <param name="Msg"></param>
/// <param name="wParam"></param>
/// <param name="lParam"></param>
/// <returns></returns>
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
#endregion
/// <summary>
/// 獲取IE句柄
/// </summary>
/// <returns></returns>
private bool GetHandleOfBrowser()
{
IEHandle = FindWindowA("IEFrame", null);
if (IEHandle == 0)
return false;
else
return true;
}
/// <summary>
/// IE窗體最大化
/// </summary>
public void SetMaxStyle(int Handle)
{
SendMessage(new IntPtr((Handle != 0 ? Handle : IEHandle)), 274, 61488, 0);
}
/// <summary>
/// 獲取源代碼
/// </summary>
/// <returns></returns>
public string GetHtml(bool Sacn)
{
string TempStr = "";
//初始化全部IE窗口 
IShellWindows sw = new ShellWindowsClass();
for (int i = sw.Count - 1; i >= 0; i--)
{
//獲得每個IE的 IWebBrowser2 對象 
IWebBrowser2 iwb2 = sw.Item(i) as IWebBrowser2;
//比對 獲得的 句柄是否符合查找的窗口句柄 
if (iwb2!=null&&iwb2.HWND == IEHandle)
{
Document = (HTMLDocumentClass)iwb2.Document;
if(Sacn)
if ((Document == null || Document.title == null || Document.title != HeadTitle) && !Document.title.Contains(BadHeadTitle))
{
continue;
}

iwb2.StatusBar = false;//狀態欄
SendMessage(new IntPtr(iwb2.HWND), 274, 61488, 0);
if (Document == null)
return "";
if (Document.title == "百度一下,你就知道" || Document.title == "360搜索 - 乾淨、安全、可信任的搜索引擎")
TempStr = "<!doctype html>" + ((HTMLDocumentClass)iwb2.Document).documentElement.outerHTML;
else
TempStr = ((HTMLDocumentClass)iwb2.Document).documentElement.outerHTML;
try
{
HeighBro = ((IHTMLElement2)Document.body).scrollHeight;
}
catch { }
break;
}
}
return TempStr;
}

}
}
相關文章
相關標籤/搜索