_IECreateEmbedded 怎样让网页的某一部分内容居中显示?【已解决】
本帖最后由 fenhanxue 于 2014-1-26 21:04 编辑原代码为:#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
Local $oIE = _IECreateEmbedded()
$Form1 = GUICreate("Form1", 674, 134, 192, 124)
GUICtrlCreateObj($oIE, 5, 5, 600, 120)
GUISetState(@SW_SHOW)
_IENavigate($oIE, "http://www.baidu.com")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
运行后,会这样显示:
而因为内嵌的IE控件窗口比较小,想直接实在这样的效果:
(即把百度搜索的核心内容,直接居中显示,应该怎么改代码?)
也就是比如,下面这张图是直接用IE打开百度,会显示的内容
发现了两个解决方案:
1.笨办法: ControlMove(),算好位置和距离。。。
2.$oIE.document.body.scrollTop = $oIE.document.body.scrollTop +20 留个名,我用的到!以后有好方法记得来更新啊! 本帖最后由 骗子 于 2014-1-21 22:25 编辑
GUICtrlCreateObj($oIE, -100, -50, 1200, 1200)
自己调节一下 负数的大小就可以了,将大小调节一下可以去除滚动条,防止用户拖动滚动条
这个是在一个163的登录程序中看到的,你可以搜搜看 #include <WindowsConstants.au3>
#include <IE.au3>
Opt("GUIResizeMode", 1)
Global $oIE = _IECreateEmbedded()
$gui = GUICreate("测试", 700, 600, Default, Default, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX))
$obj = GUICtrlCreateObj($oIE, 0, 0, 700, 600)
_IENavigate($oIE, "http://www.baidu.com/")
Local $op = _IEGetObjById($oIE,"nv")
Local $of = _IEGetObjById($oIE, "su")
;获取元素文本矩型
Local $pRect = $op.getBoundingClientRect()
Local $fRect = $of.getBoundingClientRect()
;计算位置
Local $left = -$pRect.left
Local $top = -$pRect.top
Local $width = $pRect.right-$pRect.left
Local $height = $fRect.bottom
_HideScroll($oIE) ;隐藏滚动条
;调整窗口和控件位置
Local $wPos = WinGetPos($gui)
Local $h = $wPos-600
WinMove($gui,"",Default,Default,$width,($fRect.bottom-$pRect.top)+$h)
GUICtrlSetPos($obj,$left,$top,$width,$height)
GUISetState() ;显示窗口
GUIRegisterMsg($WM_SYSCOMMAND, "WM_SYSCOMMAND")
While 1
Sleep(100)
WEnd
Func WM_SYSCOMMAND($hWnd, $sMsg, $sWParam, $slParam)
Switch $sWParam
Case 61536 ;$SC_CLOSE
Exit
EndSwitch
EndFunc ;==>WM_SYSCOMMAND
Func _HideScroll($Temp_Object)
Local $hText = 'var temp_h1 = document.body.clientHeight;'& _
'var temp_h2 = document.documentElement.clientHeight;'& _
'var isXhtml = (temp_h2<=temp_h1&&temp_h2!=0)?true:false;'& _
'var htmlbody = isXhtml?document.documentElement:document.body;'& _
'htmlbody.style.overflow = "hidden";'
$Temp_Object.document.parentwindow.execscript($hText,"javascript")
EndFunc
回复 5# 风行者
风行大大太厉害拉~ 顶起,多谢!好东西值得分享 _IEAction($Input, "scrollintoview") 本帖最后由 heroxianf 于 2016-3-14 11:05 编辑
编译的时候出错了, AUTOIT版本是论坛最新版3.3.14.2 留个记号应该baidu的网页的控件变了 回复 9# heroxianf
我也遇到了同样的问题,现在正在解决中。。。
页:
[1]