下面的代码参考 https://www.cnblogs.com/kissdodog/p/3725774.html,非我原创,所以就标为转载

注意:下面的方法只适用于系统自带的IE浏览器,其它浏览器不适用,连360浏览器都不行

下面的程序实现三个功能

1  程序打开浏览器,并转到对应url的网页

2  获取浏览器地址栏上所有的url地址

3  模拟百度输入搜索

步骤如下:

1  新建一个控制台项目,名为'操作ie浏览器'

2  为项目添加Microsoft Internet Controls.dll引用和Microsoft HTML Object Library引用,注意Microsoft Internet Controls.dll引用被添加后还要鼠标右击它,设置它的 ‘嵌入互操作类型’ 属,性为False,不然会报错

3 添加一个类 ,名为IEOperation,并编辑如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 操作ie浏览器
{class IEOperation{/// <summary>/// 利用ie浏览器打开url地址,如果ie浏览器处于关闭状态,则会打开ie浏览器并切换到url页/// </summary>/// <param name="url">要打开的url地址</param>public void OpenUrl(string url) {//新建一个Tab,然后打开指定地址(方式1)//SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();// SHDocVw.InternetExplorer webBrowser1 = (SHDocVw.InternetExplorer)shellWindows.Item(shellWindows.Count - 1);// webBrowser1.Navigate(url);//System.Diagnostics.Process.Start("iexplore.exe");  //直接打开IE浏览器(打开默认首页)System.Diagnostics.Process.Start("iexplore.exe",url);  //直接打开IE浏览器,打开指定页}/// <summary>/// 获取当前浏览器打开的所有url地址/// </summary>/// <returns>得到的url集合</returns>public List<string> GetUrlList() {System.Diagnostics.Process []process=System.Diagnostics.Process.GetProcesses();List<string> UrlList = null;//证明没有启动浏览器,为了看到效果,默认启动百度if (process.Where(pro => pro.ProcessName.Contains("iexplore")).Count() == 0){System.Diagnostics.Process pro = System.Diagnostics.Process.Start("iexplore.exe", "www.baidu.com");pro.EnableRaisingEvents = true;           //启用程序退出引发事件pro.Exited += delegate(object sender1, EventArgs e1){UrlList = GetUrlListMethod();};}else {UrlList = GetUrlListMethod();}return UrlList;}/// <summary>/// 实际获取的方法,因为方法GetUrlList()中有两个方法使用到了,就做了封装/// </summary>/// <returns></returns>private List<string> GetUrlListMethod(){SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();List<string> UrlList = new List<string>();//遍历所有shellWindowforeach (SHDocVw.InternetExplorer ie in shellWindows){string filename = System.IO.Path.GetFileNameWithoutExtension(ie.FullName).ToLower();//测试发现有一个不是url地址,就是为了过滤它if (filename.Equals("iexplore")){UrlList.Add(ie.LocationURL.ToString());}}return UrlList;}/// <summary>/// 通过DOM操作IE(本方法模拟百度输入搜索)/// </summary>/// <param name="queryString"></param>public void OperationByDOM(string queryString) {System.Diagnostics.Process process= System.Diagnostics.Process.Start("iexplore.exe", "http://www.baidu.com");  //直接打开IE浏览器,打开指定页process.EnableRaisingEvents = true;           //启用程序执行完毕(或者退出)引发事件process.Exited += delegate(object sender1, EventArgs e1){//在这里编写程序执行完毕后的业务逻辑Console.WriteLine("IE浏览器打开完毕,一定要这样做");SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();SHDocVw.InternetExplorer webBrowser1 = (SHDocVw.InternetExplorer)shellWindows.Item(shellWindows.Count - 1);//遍历所有选项卡,看是否有百度的urlforeach (SHDocVw.InternetExplorer Browser in shellWindows){if (Browser.LocationURL.Contains("www.baidu.com")){//获取百度的document,即拿到百度的html对象mshtml.IHTMLDocument2 doc2 = (mshtml.IHTMLDocument2)Browser.Document;//查找html页面中所有的input标签mshtml.IHTMLElementCollection inputs = (mshtml.IHTMLElementCollection)doc2.all.tags("input");//获取所有input标签中id号为kw的标签,即该标签为输入框对应的idmshtml.HTMLInputElement input1 = (mshtml.HTMLInputElement)inputs.item("kw", 0);//为输入框赋值input1.value = queryString;//获取所有input标签中id号为su的标签,即为 '百度一下' 那个按钮对应的idmshtml.IHTMLElement element2 = (mshtml.IHTMLElement)inputs.item("su", 0);//模拟鼠标点击 '百度一下' 那个按钮element2.click();}}};}}
}

3  主方法调用如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 操作ie浏览器
{class Program{static void Main(string[] args){IEOperation operation = new IEOperation();//operation.OpenUrl("http://www.baidu.com");foreach (var item in operation.GetUrlList()){Console.WriteLine(item);}operation.OperationByDOM("加菲猫");Console.Read();}}
}

4 最终效果如下动图所示:

C#操作IE浏览器(打开url、获取浏览器地址栏的地址、模拟百度搜索)相关推荐

  1. 大象跳转:解析微信内自动跳转浏览器打开URL网页的操作步骤

    现如今微信对第三方app下载链接的拦截是越来越严格了,下载链接在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,如此给用户带来的体验台差,用户量无法有效地累积起来, ...

  2. 怎样一键生成微信跳转链接,可以自动跳转浏览器打开URL网页

    现如今微信对第三方app下载链接的拦截是越来越严格了,下载链接在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,如此给用户带来的体验台差,用户量无法有效地累积起来, ...

  3. chrome浏览器一键切换搜索引擎,一键切换谷歌和百度搜索(不需要重新输入keyword,带关键词切换引擎)

    chrome浏览器一键切换搜索引擎,一键切换谷歌和百度搜索(不需要重新输入keyword,带关键词切换引擎) 背景 有么有办法在谷歌和百度之间(或其他引擎或非引擎,如Youtube.B站.Bing等) ...

  4. python模拟百度搜索点击链接_用 Python 获取百度搜索结果链接

    前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...

  5. android用浏览器打开url地址,Android 在浏览器中打开URL

    示例 使用默认浏览器打开 本示例说明如何在内置Web浏览器中而不是在应用程序中以编程方式打开URL.这使您的应用程序可以打开网页,而无需INTERNET在清单文件中包含权限. public void  ...

  6. 常用代码块:java使用系统浏览器打开url

    方法一:用于windows try { Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+url) ...

  7. php 判断百度浏览器版本,jquery获取浏览器类型和版本号的方法

    分享一个通过jquery获取浏览器类型和浏览器版本号的函数方法.具体jquery代码如下: $(document).ready(function(){ varbrow=$.browser; varbI ...

  8. vite2+vue3打包后浏览器打开跨域浏览器的错误

    浏览器打开html.index : Access to script at 'file:///D:/hehai/viteObj/dist/assets/index.559fd86e.js' from ...

  9. php获取浏览器关键字,php 获取浏览器姓名

    php 获取浏览器名称 if (strpos($_SERVER[HTTP_USER_AGENT], 'Maxthon')) { ??? $browser = 'Maxthon'; } elseif(s ...

最新文章

  1. @aspect注解类不生效_springboot:@Transactional注解 VS @Service注解
  2. HTTP状态 500之java.lang.StackOverflowErro
  3. ORACLE授权用户查询另一个用户下的表与视图
  4. Ubifs文件系统和mkfs.ubifs以及ubinize工具的用法
  5. 神策数据与达观数据达成战略合作,共拓大数据服务市场
  6. dns解析过程_DNS原理总结及其解析过程
  7. github上传代码
  8. sql 分组求和_数据仓库工具–Hive(归纳笔记第六部分:SQL练习)
  9. c语言常用英语单词大全下载,C语言实现英文单词助手
  10. 计算机课玩游戏检讨500字,上电脑课玩游戏的检讨书范文
  11. spark安装及环境配置(win10)
  12. 综合评价方法之秩和比法(RSR)
  13. oracle如何查看剩余表空间,oracle 查看各表空间剩余量
  14. python京东抢购 github_GitHub - DevGuan/jd-autobuy: Python爬虫,京东自动登录,在线抢购商品...
  15. git合并其他分支的代码产生冲突处理过程
  16. Codeforces Global Round 16 2021.9.13
  17. Android实时音视频如何快速实现回声消除
  18. 微信小程序与卡券功能小结
  19. 实时搜索引擎Elasticsearch(4)——Aggregations (聚合)API的使用
  20. 单片机并行口控制蜂鸣器播放音乐

热门文章

  1. joom erp系统订单管理及刊登哪个好用?无忧易售ERP已完成Joom平台对接
  2. ApacheCN 公众号文章汇总 2019.6
  3. [ZJOI2001] 积木城堡
  4. 网页端可以在线使用的PS工具推荐
  5. 一种新颖的PMSM转子初始位置检测
  6. Gmap.net学习(一)程序配置
  7. FPGA 中时钟信号的总结
  8. spi通信协议_arduino的SPI通信
  9. 基于HTML电商项目的设计与实现—— HTML+CSS+JavaScrip家具网页设计实例 企业网站制作...
  10. java编码转换 解决日文乱码