• 获取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;
            }

  • 相关阅读:
    LOJ-10096(强连通+bfs)
    LOJ-10095(缩点的特殊使用)
    LOJ-10094(强连通分量)
    LOJ-10092(最大半连通子图)
    【BZOJ3489】A simple rmq problem(KD-Tree)
    UVA10384 推门游戏 The Wall Pushers(IDA*)
    [SCOI2005]骑士精神(IDA*)
    浅谈A*算法
    【模板】K-D Tree
    【XSY1953】【BZOJ4012】【HNOI2015】开店(动态点分治)
  • 原文地址:https://www.cnblogs.com/linmilove/p/1591661.html
Copyright © 2020-2023  润新知