2019-05-07

C#操作IE浏览器的方法


在开发代码的过程中,有时候我们需要书写一个代码去操作浏览器,得到我们需要操作,那么我们今天就来讲一下使用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 inobj.getElementsByTagName("li"))

                  {

                    //得到li标签的内容

                    string content=i.innerText;

                    鼠标点击网页

                   mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN |MOUSEEVENTF_LEFTUP, 100, 100, 0, 0);


                  }



           }

       }

    }


}

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

深圳网站建设  https://www.sz886.com/

你可能感兴趣的:(2019-05-07)