webBrowser中获取指定的图片类


public class webBrowserTool
{

    ///    
    /// 获取WebBrowser指定的图片   
    ///    
    /// 需要获取图片的WebBrowser   
    /// 指定的图片的id(优先查找指定id)   
    /// 指定的图片的src,支持模糊查询   
    /// 指定的图片的src, 支持模糊查询   
    ///    
    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", false, null);
        Image regImg = Clipboard.GetImage();
        Clipboard.Clear();
        return regImg;
    }




    ///    
    /// 获取WebBrowser指定图片的索引   
    ///    
    /// 指定的WebBrowser   
    /// 指定的图片src,支持模糊查询   
    /// 指定的图片alt,支持模糊查询   
    ///    
    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;
    }
}

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back