如果保存IE图片到本地或者显示到GUI上
本帖最后由 fhmily 于 2009-12-10 12:58 编辑对于一个已经打开上的网页,如果将其中的某个图像保存到本地或者显示到GUI上?
如果是先获取图像对象$obj,然后$obj.src这种方式获取的链接的方式的话,对于类似验证码图片这种的图片往往会产生变化
有什么办法可以直接获取到已经下载到本地的这个图片呢?
经过提示,搜索到方法如下,加了点小注释方便阅读
#include <IE.au3>
$title=""//定义需要绑定的窗口标题
$oIE=_IEAttach($title)
$oImg = _IEImgGetCollection ($oIE, 0)//获取索引0的图片对象(第一张)
$oPic = $oIE.Document.body.createControlRange()
$oPic.Add($oImg)//将图片添加到新创建的集合中(ControlRange)
$oPic.execCommand("Copy")//将集合复制到剪切板
$bmp = ClipGet()//获取剪切板内容,以下省略
本帖最后由 水木子 于 2009-12-9 18:18 编辑
可以用InetGet下载图片,再用GUICtrlCreatePic,帮忙文档有例子! InetGet确实可以,不过那样和我顶楼说的就是一会事了。先获取链接,然后创建新页面或者下载,对于有些网页这是一种可行的办法。
不过对于验证码图片之类的还是没什么意义,你下载的图片和已经显示出的图片就不一样了 可能我说的不是很清楚
对于一个已经读取完的网页,页面上的图片其实已经下载到了本地。我就是希望能不再通过网络,而是直接在本地获取这些图片。 如果是验证码,就用截图试试!(我只是瞎想) 嗯,截图也是一种办法,多谢提醒
不过我本身的目的就是不显示原网页,这样的话也就没办法截图了。。。 如果网页已经用ie控件打开,那图片就已经缓存到ie临时文件夹里了,你只要获取到图片名,然后load临时文件夹里的图片就可以了 如果网页已经用ie控件打开,那图片就已经缓存到ie临时文件夹里了,你只要获取到图片名,然后load临时文件夹 ...
koysgl 发表于 2009-12-9 18:34 http://www.autoitx.com/images/common/back.gif
嗯,可否麻烦详细说明一下?
我有以下几个疑问:
1、因为ie临时文件夹是可以更改位置的,如何取到这个位置?
2、如果网页设置的是不使用缓存,是否还会在临时文件夹中留下文件
3、网页上面的文件获取链接还比较方便,但是获取文件名需要什么方法呢?甚至于不同网站的文件名也有可能重复,单纯靠文件名如何可靠的获取到对应的图片呢? 关注中!!!!! 已经用C++解决了IE临时文件的读取、比对问题
不过临时文件数量太多,比对花费时间太大,另外有些文件在临时文件中是不予以保存的
继续求好的方法 我可以肯定的是楼主发帖之前没有搜索过论坛
论坛有把验证码显示到gui上的帖子 我可以肯定的是楼主发帖之前没有搜索过论坛
论坛有把验证码显示到gui上的帖子
sxd 发表于 2009-12-9 22:24 http://www.autoitx.com/images/common/back.gif
抱歉的说一句,我注册了9个月却只发了30多个帖子的最大原因就是我能搜索出来的答案就绝对不发帖。。。至少在发这个帖子之前我搜了1个小时的帖子
首先单纯的验证码显示到GUI上的方法我知道2种,其一是是我顶楼我提到的链接方式,另外一种也可以直接创建winhttp.winhttprequest.5.1对象后,直接get方法获取图片文件流后保存
但是这样得到的验证码和已打开网页中的session不同,图片也不同 那说明我关于你没有搜索过论坛的猜测是错误的
只能说你没搜索到正确的答案
关于session确实是这样 论坛上好像有2种方法一种确实是无关session的 就是获取图片对象后找到临时目录的位置显示出来
因为我在很久很久以前弄过 所以有点印象
烦请你再仔细找找 那说明我关于你没有搜索过论坛的猜测是错误的
只能说你没搜索到正确的答案
关于session确实是这样 论坛 ...
sxd 发表于 2009-12-10 10:35 http://www.autoitx.com/images/common/back.gif
多谢提示,google全站搜索终于找到
方法追加在主楼,方便大家查看
页:
[1]