我想做个IE插件,在TWebbrowser中点击某个图片,就将该图片下载保存下来.该如何实现?我是先获得鼠标位置的Element,分析innerhtml获得图片的URL,然后用IDHttp.Get直接去下载。但觉得这样好像浪费时间,因为当浏览器显示完毕某个图片之后就已经把所有的图片等文件都下载到了本地的缓存目录中了,我能否直接从缓存目录中Copy出该图片?这样能实现吗?怎样实现?

解决方案 »

  1.   

    图片放在Temporary Internet Files可以直接copy出来,但是现在的问题是你知道这个图片对应的文件名么?帮你up...
      

  2.   

    对,我也知道文件是放在..\Temporary Internet Files\xxx\中;但是每个网页对应的"xxx"文件夹不知如何确定啊??问题的关键就在此。 我也考虑过象FlashGet一样的方法,调用外部的VBS脚本。但此法对于保存普通的图片也许可以,如果我想保存Flash文件可以吗?
      

  3.   

    没做过,关注,
    也许花些功夫弄得出来,
    你试试通过IHMTLDOCUMENT2取到这个图片节点的接口,看能否取到有用信息。
      

  4.   

    IHMTLDOCUMENT2我试过的,找遍了它的所有方法都没有相关的.通过IHMTLDOCUMENT2只能获取当前鼠标位置的IHTMLElement. 但这对于当前位置的图片对应的HTML源文件是通过.JS文件的Document.write写的,又或者是用IFrame嵌入的,那当前鼠标位置的Element就不是img了,而是JS或IFrame了,这就根本无法获取图片文件的URL,也就无法用http.Get去下载它了.
      而IE右键中的"另存为"命令则对以上情况都能正常下载, 我现在最迫切的难题就在于如何能实现类似的方法.
      
      另外,象IE6.0那样: 当你的鼠标移动到网页中某个图片上,就会在该图片的左上方出现一个浮动工具栏,其上有"保存","打印"等按钮,点击即可另存该图片(即使该图片是上述的两种特殊情况,它都是能知道该图片显示的位置和大小的). 这也是我想实现的功能.
      真是个难题啊,不知哪位能给点提示啊. 感谢!!
      

  5.   

    问问这个高手吧?
    http://www.wizissoft.com
      

  6.   

    方法1 查询IHtmlElement指向的对象的IOleCommandTarget接口,试图执行OLECMD_COPY命令,然后去打开剪贴板
    方法2 使用URLDownloadToFile返回已经下载的图片在Internet缓冲区内的对应文件的路径