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/