• 获取WebBrowser中的指定图片


            /// <summary>
            
    /// 获取WebBrowser指定的图片
            
    /// </summary>
            
    /// <param name="webBrowser">需要获取图片的WebBrowser</param>
            
    /// <param name="imgID">指定的图片的id(优先查找指定id)</param>
            
    /// <param name="imgSrc">指定的图片的src,支持模糊查询</param>
            
    /// <param name="imgAlt">指定的图片的src, 支持模糊查询</param>
            
    /// <returns></returns>

            public static Image GetRegCodePic(ref WebBrowser webBrowser, String imgID, String imgSrc, String imgAlt)
            
    {
                
                HTMLDocument doc 
    = (HTMLDocument)webBrowser.Document.DomDocument;
                HTMLBody body 
    = (HTMLBody)doc.body;
                IHTMLControlRange rang 
    = (IHTMLControlRange)body.createControlRange();
                IHTMLControlElement img;

                
    // 如果没有图片的ID,通过Src或Alt中的关键字来取
                if (imgID.Length == 0)
                
    {
                    Int32 ImgNum 
    = GetPicIndex(ref webBrowser, ref imgSrc, ref imgAlt);

                    
    if (ImgNum == -1)
                        
    return null;

                    img 
    = (IHTMLControlElement)webBrowser.Document.Images[ImgNum].DomElement;
                }

                
    else
                    img 
    = (IHTMLControlElement)webBrowser.Document.All[imgID].DomElement;

                rang.add(img);
                rang.execCommand(
    "Copy"falsenull);
                Image regImg 
    = Clipboard.GetImage();
                Clipboard.Clear();
                
    return regImg;
            }


            
    /// <summary>
            
    /// 获取WebBrowser指定图片的索引
            
    /// </summary>
            
    /// <param name="webBrowser">指定的WebBrowser</param>
            
    /// <param name="imgSrc">指定的图片src,支持模糊查询</param>
            
    /// <param name="imgAlt">指定的图片alt,支持模糊查询</param>
            
    /// <returns></returns>

            public static Int32 GetPicIndex(ref WebBrowser webBrowser, ref String imgSrc, ref String imgAlt)
            
    {
                IHTMLImgElement img;

                
    // 获取所有的Image元素
                for (Int32 i = 0; i < webBrowser.Document.Images.Count; i++)
                
    {
                    img 
    = (IHTMLImgElement)webBrowser.Document.Images[i].DomElement;

                    
    if (imgAlt.Length == 0)
                    
    {
                        
    if (img.src.IndexOf(imgSrc) >= 0)
                            
    return i;
                    }

                    
    else
                    
    {
                        
    if (imgSrc.Length == 0)
                        
    {
                            
    // 当imgSrc为空时,只匹配imgAlt
                            if (img.alt.IndexOf(imgAlt) >= 0)
                                
    return i;
                        }

                        
    else
                        
    {
                            
    // 当imgSrc不为空时,匹配imgAlt和imgSrc任意一个
                            if (img.alt.IndexOf(imgAlt) >= 0 || img.src.IndexOf(imgSrc) >= 0)
                                
    return i;
                        }

                    }

                }

                
    return -1;
            }

  • 相关阅读:
    mybatis3.0-[topic10-14] -全局配置文件_plugins插件简介/ typeHandlers_类型处理器简介 /enviroments_运行环境 /多数据库支持/mappers_sql映射注册
    _MyBatis3-topic06.07.08.09_ 全局配置文件_引入dtd约束(xml提示)/ 引入properties引用/ 配置驼峰命名自动匹配 /typeAliases起别名.批量起别名
    MyBatis3-topic04,05 -接口式编程
    JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql
    [课本10.1.4]JDBC数据库连接池- C3P0数据源--通过构造方法创建数据源对象--通过配置文件创建数据源对象[推荐]
    JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法
    JDBC课程4--使用PreparedStatement进行增删查改--封装进JDBCTools的功能中;模拟SQL注入 ; sql的date()传入参数值格式!
    本周进度总结
    本周进度总结
    大道至简读后感
  • 原文地址:https://www.cnblogs.com/linmilove/p/1591661.html
Copyright © 2020-2023  润新知