zoukankan
html css js c++ java
获取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
"
,
false
,
null
);
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
;
}
查看全文
相关阅读:
CenOS下LAMP搭建过程
CentOS下将自编译的Apache添加为系统服务
CentOS下编译安装Apache(httpd)
CentOS6下配置Django+Apache+mod_wsgi+Sqlite3过程
Python格式化输出
Python里如何实现C中switch...case的功能
Python科学计算学习一 NumPy 快速处理数据
每个程序员都应该学习使用Python或Ruby
Python IDLE中实现清屏
Graphviz 可视化代码流程
原文地址:https://www.cnblogs.com/linmilove/p/1591661.html
最新文章
bootstrap 导航布局
好用的图片裁剪类
Thinkphp交友手机首页简明前台、后台
Thinkphp 3.0版本上传文件加图片缩略图实例解析
ThinkPHP 分页实现
PHP分页类
jquery倒计时(仿团购)转至 http://justcoding.iteye.com/blog/2210962
php 操作数组 (合并,拆分,追加,查找,删除等)
php文件上传类
Smart ——jiaoyou模板
热门文章
[bzoj3754]Tree之最小方差树【暴力】【MST】
[bzoj1042][HAOI2008]硬币购物【dp】【容斥】
[bzoj4031][HEOI2015]小Z的房间【矩阵树定理】【高斯消元】
[bzoj3232]圈地游戏【0/1分数规划】【网络流】
[bzoj2285][Sdoi2011]保密【0/1分数规划】【网络流】
[bzoj4753][Jsoi2016]最佳团体【0/1分数规划】【dp】
[bzoj4033][HAOI2015]树上染色【dp】
[bzoj4854][Jsoi2016]无界单词【dp】
[bzoj4197][Noi2015]寿司晚宴【dp】
[bzoj1767][Ceoi2009]harbingers【dp】
Copyright © 2011-2022 走看看