博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

C# 浏览器工具

Posted on 2012-02-15 14:52  PHP-张工  阅读(1570)  评论(5编辑  收藏  举报

利用webBrowser做了个浏览器工具!功能类似IE toolbar.

界面如下:

主要功能:

  • 网页浏览
    使用webBrowser来实现。 
    主要遇到问题是,如何包含多框架的页面是否加载完成。方法如下:
    private void webPanel_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    if (webPanel.Url.ToString() != e.Url.ToString())
    {
    return;
    }
    //网页加载完成
    }
  • 当前网络状况
    使用C#自带ping命令检测网络状况。显示1秒ping一次www.baidu.com返回毫秒。
  • 网页内取色
    屏幕取色主要方法:
    Color color = Color.White;
    Rectangle rect = Screen.PrimaryScreen.Bounds;
    using (Bitmap bmp = new Bitmap(1, 1))
    {
    using (Graphics g = Graphics.FromImage(bmp))
    {
    g.CopyFromScreen(Control.MousePosition.X, Control.MousePosition.Y, 0, 0, new Size(1, 1));
    }
    color = bmp.GetPixel(0, 0);
    }

    lblColor.BackColor = color; 
  • 添加和执行JS
    webPanel.Document.InvokeScript("eval", new object[] { str }); 
  • 浏览DOM树 (属性可修改)
    HtmlElement属性显示和修改使用 PropertyGrid ,可在Tree中使用Delete键删除当前节点。
  • 浏览网页元素的属性和样式
    调用页面内嵌入的JS代码返回元素的属性和当前样式。使用 ListView 展示。可使用Ctrl+C键复制当前选中值。
  • 统计网页元素数量
    使用Document.All、Document.Links 、Document.Images、Document.Forms、Document.Window.Frames 统计
  • 显示所有连接
    将当前页面所有连接,展示在表格中。 
  • 显示所有图片
    将当前页面所有Image对象,展示在表格中。 
  • 仅显示文字
    使用 webPanel.Document.Write(webPanel.Document.Body.InnerText); 
  • 显示所有引用 (js或样式)
    获取所有应用外部的JS和样式表的连接。 
  • 个性状态栏(当前元素位置)
    调用JS来显示当前元素的边框。 
  • 调整页面尺寸
  • 禁止弹出页
  • 禁止框架
    调用JS删除当前页面所有框架页。 
    当新页面加载完成后,因为有的框架是页面JS动态添加的。所以程序是在页面加载完成后,延迟1秒执行删除框架的。 
  • 禁止FLASH
    调用JS删除当前页面所有FLASH。 
  • 限制仅在本页内打开
    将所有连接设置为target="_self" 

 

程序下载:https://files.cnblogs.com/zjfree/WebTool.rar

源码下载:https://files.cnblogs.com/zjfree/WebTool_src.rar

开发环境:WIN2003 + VS2005 + .NET2.0 + C#