[已解决]如何对网页中指定的元素进行截图
本帖最后由 仙乃日 于 2013-1-15 20:49 编辑例如要对http://www.baidu.com/中的“百度一下”这个按钮进行截图<input class="s_btn" id="su" onmouseout="this.className='s_btn'" onmousedown="this.className='s_btn s_btn_h'" type="submit" value="百度一下"/> 还是我来吧
#include <IE.au3>
#include <ScreenCapture.au3>
$oIE = _IECreate("http://www.baidu.com")
$su = _IEGetObjById($oIE, "su")
;元素矩形
$dLeft = $su.getBoundingClientRect().left
$dTop = $su.getBoundingClientRect().top
$dRight = $su.getBoundingClientRect().right
$dBottom = $su.getBoundingClientRect().bottom
$hCtrl = ControlGetHandle(HWnd($oIE.hwnd), "", "Internet Explorer_Server1")
Local $tPoint = DllStructCreate($tagPOINT)
DllStructSetData($tPoint, "X", $dLeft)
DllStructSetData($tPoint, "Y", $dTop)
_WinAPI_ClientToScreen($hCtrl, $tPoint)
$x = DllStructGetData($tPoint, "X")
$y = DllStructGetData($tPoint, "Y")
_ScreenCapture_Capture(@ScriptDir & "\new.jpg", $x, $y, ($dRight - $dLeft) + $x, ($dBottom - $dTop) + $y)
ShellExecute(@ScriptDir & "\new.jpg") 还是我来吧
风行者 发表于 2013-1-15 17:52 http://www.autoitx.com/images/common/back.gif
风行者 又闪亮登场了。。。帅! 本帖最后由 annybaby 于 2013-1-15 19:38 编辑
回复 2# 风行者
表示有压力,截图得到的是一个长宽都比原来大1的小黑块~~
;;;;;;;;;;;;;;;;;;;;;已经找到原因了,IE8那个主窗体控件是
Internet Explorer_Server2
不是
Internet Explorer_Server1
其实后面的也可以直接使用UDF
#include <IE.au3>
#include <ScreenCapture.au3>
$oIE = _IECreate("http://www.baidu.com")
$su = _IEGetObjById($oIE, "su")
;元素矩形
$dLeft = $su.getBoundingClientRect().left
$dTop = $su.getBoundingClientRect().top
$dRight = $su.getBoundingClientRect().right
$dBottom = $su.getBoundingClientRect().bottom
$hCtrl = ControlGetHandle(HWnd($oIE.hwnd), "", "Internet Explorer_Server2")
_ScreenCapture_CaptureWnd(@ScriptDir & "\new1.jpg",$hCtrl,$dLeft,$dTop,$dRight,$dBottom)
ShellExecute(@ScriptDir & "\new1.jpg")
本帖最后由 仙乃日 于 2013-1-15 20:48 编辑
非常感谢楼上兄弟的热心指导哦。自己使用的是IE9类别名是"Internet Explorer_Server1"。
非常奇怪的是采用ACDSee3.1或者光景魔术手查看截图左边框和上边框都缺失了,使用Win7自带
的“画图”则无此问题。 还是我来吧
风行者 发表于 2013-1-15 17:52 http://www.autoitx.com/images/common/back.gif
请问一下,如果这个页面的窗口比较小,按钮给遮挡在,比如要移动滚动条才能看见到,这样能在被遮挡的情况下截取到吗? 仙哥好久不见!近来可好?这么有空,不用给人看病吗? 不错崇拜风行者 高手啊。。学习了。
页:
[1]