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
;
}
查看全文
相关阅读:
实用Javascript调试技巧
fetch的常见问题及其解决办法
为什么重复的GET请求变慢了?
JavaScript深入浅出第4课:V8引擎是如何工作的?
一步一步搭建前端监控系统:如何定位前端线上问题?
如何使用 Set 来提高JS代码的性能
详解Vue的slot新用法
详解Vue响应式原理
BeautyWe.js 一套专注于微信小程序的开发范式
await Task.Yield()和await Task.CompletedTask有什么不同
原文地址:https://www.cnblogs.com/linmilove/p/1591661.html
最新文章
Android 设置EditText光标位置(转)
[Android] TextView长按复制实现方法小结(转载)
启动Tomcat的小细节--MyEclipse
【转】MyEclipse快捷键大全
getHibernateTemplate()的用法 (转)
C# 用 WebClient 的 Post 方法向 WebServer 传输数据
利用WebClient上传参数及文件流到远程ashx服务
C# MVC 微信支付教程系列之公众号支付
Windows IIS服务挂载NAS共享文件存储
微信开发】【Asp.net MVC】-- 微信分享功能
热门文章
C#进阶系列——WebApi 跨域问题解决方案:CORS
Webapi
Jmeter对HTTP请求压力测试、并发测试的简单使用方法
IIS负载均衡
架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
经常有人问两年时间能学好小提琴吗?我建议,还是换一种乐器学吧
钢琴、小提琴学哪个?
tf2.0+keras知识点学习
Faiss的学习和入门文章
Facebook发布全新JavaScript引擎:Hermes
Copyright © 2011-2022 走看看