找回密码
 加入
搜索
查看: 5329|回复: 5

[IE类操作] 如何获取IE句柄?之前好像记得有方法的忘记了

  [复制链接]
发表于 2014-5-6 21:58:23 | 显示全部楼层 |阅读模式
; *******************************************************
; 示例1 - 获取COM错误以便外部历史集的'Back'及'Forward'不使脚本退出
;    (COM错误将送至控制台)
;
; *******************************************************

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

_IEErrorHandlerRegister()

Local $oIE = _IECreateEmbedded()
$Form1_1=GUICreate("Embedded Web control Test", 640, 580, _
                (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
                $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 10, 40, 600, 360)
Local $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
Local $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
Local $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
Local $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)

GUISetState() ;显示GUI

_IENavigate($oIE, "http://www.baidu.com")
MsgBox(0, $Form1_1, $oIE.HWnd)
Exit
; 等待用户关闭窗口
While 1
        Local $msg = GUIGetMsg()
        Select
                Case $msg = $GUI_EVENT_CLOSE
                        ExitLoop
                Case $msg = $GUI_Button_Home
                        _IENavigate($oIE, "http://www.autoitscript.com")
                Case $msg = $GUI_Button_Back
                        _IEAction($oIE, "back")
                Case $msg = $GUI_Button_Forward
                        _IEAction($oIE, "forward")
                Case $msg = $GUI_Button_Stop
                        _IEAction($oIE, "stop")
        EndSelect
WEnd

GUIDelete()

Exit
发表于 2014-5-7 12:28:27 | 显示全部楼层
WinSetOnTop(HWnd($oIE.HWnd()), "", 0)
 楼主| 发表于 2014-5-7 22:44:54 | 显示全部楼层
WinSetOnTop(HWnd($oIE.HWnd()), "", 0)
athland5013 发表于 2014-5-7 12:28



    一样不会获取到呢!
发表于 2014-5-8 07:58:20 | 显示全部楼层
貌似可以获取进程id 再或句柄吧
发表于 2014-5-11 15:44:42 | 显示全部楼层
本帖最后由 lixiaolong 于 2014-5-11 15:46 编辑

回复 1# heavenm

试试.
; *******************************************************
; 示例1 - 获取COM错误以便外部历史集的'Back'及'Forward'不使脚本退出
;    (COM错误将送至控制台)
;
; *******************************************************

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

;~ _IEErrorHandlerRegister()

Local $oIE = _IECreateEmbedded()
$Form1_1=GUICreate("Embedded Web control Test", 640, 580, _
                (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
                $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 10, 40, 600, 360)
Local $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
Local $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
Local $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
Local $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)

GUISetState() ;显示GUI

_IENavigate($oIE, "http://www.baidu.com")

$hWnd = ControlGetHandle($Form1_1, "", "[class:Internet Explorer_Server]")

MsgBox(0, $Form1_1, $hWnd)
Exit
; 等待用户关闭窗口
While 1
        Local $msg = GUIGetMsg()
        Select
                Case $msg = $GUI_EVENT_CLOSE
                        ExitLoop
                Case $msg = $GUI_Button_Home
                        _IENavigate($oIE, "http://www.autoitscript.com")
                Case $msg = $GUI_Button_Back
                        _IEAction($oIE, "back")
                Case $msg = $GUI_Button_Forward
                        _IEAction($oIE, "forward")
                Case $msg = $GUI_Button_Stop
                        _IEAction($oIE, "stop")
        EndSelect
WEnd

GUIDelete()

Exit
 楼主| 发表于 2014-5-11 17:21:02 | 显示全部楼层

句柄不一样!
而且这个方法太间接了,不太好用!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 20:50 , Processed in 0.082137 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表