深圳网站建设、深圳建网站、网站建设公司定制属于您的高端个性化网站!

搜索深圳网站建设相关案例及相关信息 服务热线:13530005572/15112579390
首页 > 独占观点 > asp.net操作IE浏览器的方法

asp.net操作IE浏览器的方法

  • 所属分类:独占观点
  • 作者: 独占网络
  • 更新时间: 2017-6-26 8:51:37
  • 返回列表
在开发代码的过程中,有时候我们需要书写一个代码去操作浏览器,得到我们需要操作,那么我们今天就来讲一下使用asp.net(C#)操作IE浏览器的方法
先我们操作浏览器的需要用到鼠标,还有键盘的方法,所以需要引入鼠标还有键盘的事件

//得到键盘,按键信息
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int GetKeyState(int nVirtKey);

//键盘操作事件
[DllImport("user32.dll", EntryPoint = "keybd_event", CharSet = CharSet.Auto)]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);

//鼠标移动事件
[System.Runtime.InteropServices.DllImport("user32", CharSet = CharSet.Auto)]
static extern bool SetCursorPos(int X, int Y);

//鼠标点击事件
[System.Runtime.InteropServices.DllImport("user32", CharSet = CharSet.Auto)]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

//ShellExecute函数ShowCmd参数可选值
public enum ShowCommands : int
{
    SW_HIDE = 0,
    SW_SHOWNORMAL = 1,
    SW_NORMAL = 1,
    SW_SHOWMINIMIZED = 2,
    SW_SHOWMAXIMIZED = 3,
    SW_MAXIMIZE = 3,
    SW_SHOWNOACTIVATE = 4,
    SW_SHOW = 5,
    SW_MINIMIZE = 6,
    SW_SHOWMINNOACTIVE = 7,
    SW_SHOWNA = 8,
    SW_RESTORE = 9,
    SW_SHOWDEFAULT = 10,
    SW_FORCEMINIMIZE = 11,
    SW_MAX = 11
}
const int MOUSEEVENTF_MOVE = 0x0001;  //    移动鼠标 
const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模拟鼠标左键按下 
const int MOUSEEVENTF_LEFTUP = 0x0004; //模拟鼠标左键抬起 
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;// 模拟鼠标右键按下 
const int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起 
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模拟鼠标中键按下 
const int MOUSEEVENTF_MIDDLEUP = 0x0040; //模拟鼠标中键抬起 
const int MOUSEEVENTF_ABSOLUTE = 0x8000;// 标示是否采用坐标 

我们得到操作鼠标键盘的方法之后,我们就需要操作得到浏览器的信息。
我们需要引入Microsoft.mshtml,事件才可以操作浏览器信息

下面就是得到浏览器信息的核心代码
//得到浏览器信息
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
    object objFlags = 1;
    object objTargetFrameName = "";
    object objPostData = "";
    object objHeaders = "";
    //得到浏览器的窗体方法
    SHDocVw.InternetExplorer webBrowser1 = (SHDocVw.InternetExplorer)shellWindows.Item(shellWindows.Count - 1);

    //循环浏览器的所有窗体 
    foreach (SHDocVw.InternetExplorer Browser in shellWindows)
    {
         //判断打开的是不是百度网站
        if (Browser.LocationURL.Contains("www.baidu.com"))
        {
            //得到网页内容
            if (Browser.Document is HTMLDocumentClass)
            {

                mshtml.IHTMLDocument2 doc2 = (mshtml.IHTMLDocument2)Browser.Document;

                HTMLDocumentClass obj = (HTMLDocumentClass)doc2;
                //得到窗体的信息
                int BrowserH = Screen.PrimaryScreen.WorkingArea.Height - ((IHTMLElement2)obj.documentElement).clientHeight;
                  
                  //循环得到li标签的信息
                  foreach (IHTMLElement i in obj.getElementsByTagName("li"))
                  {
                    //得到li标签的内容
                    string content=i.innerText;
                    鼠标点击网页
                    mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 100, 100, 0, 0);
                  
                  }


            }
        }
    }

}
通过上面的例子,大家就可以看到浏览器中网页的标签的内容,也可以点击网页

相关推荐

您值得信任的网站建设专家!

为其提供系统的基于互联网的品牌行销策略 、 创意执行 、 追踪运营服务 。