找回密码
 加入
搜索
查看: 5913|回复: 11

[IE类操作] AU3 如何调用WebBrowser ?

  [复制链接]
发表于 2011-1-19 09:10:26 | 显示全部楼层 |阅读模式
方法                 说明 
 GoBack             相当于IE的“后退”按钮,使你在当前历史列表中后退一项 
 GoForward        相当于IE的“前进”按钮,使你在当前历史列表中前进一项 
 GoHome            相当于IE的“主页”按钮,连接用户默认的主页 
 GoSearch          相当于IE的“搜索”按钮,连接用户默认的搜索页面 
 Navigate            连接到指定的URL 
 Refresh             刷新当前页面 
 Refresh2           同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表, 
                   该表定义在ExDisp.h中,可以指定的不同值如下:                    REFRESH_NORMAL     执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器 
                   REFRESH_IFEXPIRED  只有在网页过期后才进行简单的刷新 
                   REFRESH_CONTINUE   仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用 
                   REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器 
 Stop                相当于IE的“停止”按钮,停止当前页面及其内容的载入

    属性                                   说明 
 Application                如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。
                                  如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser 控件的自动化对象 
 Parent                       返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口 
 Container                  返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同 
 Document                 为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则 
                                  Document属性提供对DHTML Object Model的访问途径 
 TopLevelContainer       返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true 
 Type                          返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返 
                                  回Microsoft Word Document 
 Left                            返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离 
 Top                             返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离 
 Width                           返回或设置WebBrowser窗口的宽度,以像素为单位 
 Height                          返回或设置WebBrowser窗口的高度,以像素为单位 
 LocationName                    返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源 
                                  是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称 
 LocationURL                     返回WebBrowser当前正在显示的资源的URL 
 Busy                            返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true 
                                  就可以使用stop方法来撤销正在执行的访问操作

WebBrowser 的事件
Private Events                        Description  
BeforeNavigate2                   导航发生前激发,刷新时不激发 
CommandStateChange                当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward 
                                  菜单项或按钮  
DocumentComplete                  当整个文档完成是激发,刷新页面不激发 
DownloadBegin                     当某项下载操作已经开始后激发,刷新也可激发此事件 
DownloadComplete                  当某项下载操作已经完成后激发,刷新也可激发此事件 
NavigateComplete2                 导航完成后激发,刷新时不激发 
NewWindow2                        在创建新窗口以前激发 
OnFullScreen                      当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输 
                                  入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)  
OnMenuBar                         改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。 
                                  VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏  
OnQuit                            无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发  
OnStatusBar                       与OnMenuBar调用方法相同,标示状态栏是否可见。  
OnToolBar                         调用方法同上,标示工具栏是否可见。 
OnVisible                         控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数  
StatusTextChange                  如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏 
TitleChange                       Title有效或改变时激发。
测试了下 用E语言去做简单的浏览器。效果比AU3 好多了。点击页面中的链接时 不会有新窗口弹出。
AU3 如何才能做到呢?研究了几天还是没进展~~
发表于 2011-1-21 17:18:51 | 显示全部楼层
新版IE控件不能捕捉弹窗事件
参考:
http://www.91xiu.com/edu/o/2008/12/29/7257.shtml
发表于 2011-1-21 19:25:58 | 显示全部楼层
调用哪一个版本呢?
发表于 2011-1-22 01:11:51 | 显示全部楼层
        ;$oIE = ObjCreate("Shell.Explorer.2") ;内嵌 ;IWebBrowser2
        $oIE = ObjCreate("Shell.Explorer.1") ;内嵌 ;IWebBrowser
发表于 2011-1-22 03:19:55 | 显示全部楼层
应用事件一(DWebBrowserEvents):
$oIE = ObjCreate("Shell.Explorer.2") ;内嵌 ;IWebBrowser2
        $EventObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents") 
        If @error Then
                Exit (MsgBox(0, "AutoIt COM Test", "ObjEvent: Can't use event interface 'DWebBrowserEvents'. Error code: " & Hex(@error, 8)))
        EndIf
应用事件二(DWebBrowserEvents2):
$oIE = ObjCreate("Shell.Explorer.2") ;内嵌 ;IWebBrowser2
        $EventObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2") 
        If @error Then
                Exit (MsgBox(0, "AutoIt COM Test", "ObjEvent: Can't use event interface 'DWebBrowserEvents'. Error code: " & Hex(@error, 8)))
        EndIf
----------------------------------------------------
·上面 2 种事件模式返回应用的事件函数是不一样的
---------------------------------------------------
发表于 2011-1-22 03:23:33 | 显示全部楼层
;捕捉事件

Func IEEvent_($EventName)  

        ConsoleWrite ( "未应用事件函数名称: " & $EventName & @CRLF   )
        
EndFunc 
发表于 2011-1-30 02:57:38 | 显示全部楼层
要禁止弹出新窗口
可使用劫持……先把系统默认浏览器绑定不让他动,最后在_NewWindow中重导航转向即可!
~~~
;禁用(IE)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\IEXPLORE.exe", "Debugger", "REG_SZ", "C:\禁止IE.exe")

;启用(IE)
;RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\IEXPLORE.exe")

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
woeiwoei + 20 + 5

查看全部评分

发表于 2011-1-30 03:01:48 | 显示全部楼层
劫持了就不用再去动态修改网页连接
就让他去弹吧~~~
发表于 2011-1-30 03:06:12 | 显示全部楼层
要劫持IE,只能应用于内嵌调用控件模式.
发表于 2011-1-30 03:12:14 | 显示全部楼层
本帖最后由 _ddqs. 于 2011-1-30 04:36 编辑

默认浏览器查询:
[HKEY_CLASSES_ROOT\HTTP\shell\open\command]
@=""C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE" -nohome"
$sysBrowser = RegRead("HKEY_CLASSES_ROOT\HTTP\shell\open\command","")
MsgBox(0,0,$sysBrowser)
$sysBrowser = RegRead("HKEY_CLASSES_ROOT\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32","")
MsgBox(0,0,$sysBrowser)
$sysBrowser = RegRead("HKEY_CLASSES_ROOT\HTTP\shell\open\command","")

;$sysBrowser = RegRead("HKEY_CLASSES_ROOT\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32","")

$sysBrowser = _RegStringSplit($sysBrowser)

;禁用浏览器
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" & $sysBrowser, "Debugger", "REG_SZ", "C:\禁止弹窗.exe")

;启用浏览器
;RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" & $sysBrowser )

MsgBox(0, 0, $sysBrowser )

Func _RegStringSplit($keyValue)
        
        Local $ret
        $ret = StringSplit($keyValue, """", 2)
        $ret = StringMid($ret[1], StringInStr($ret[1],"",0,-1)+1, StringLen($ret[1]))
        Return $ret
        
EndFunc
内嵌IE:
http://www.autoitx.com/forum.php ... amp;fromuid=7653769
发表于 2011-1-30 03:14:29 | 显示全部楼层
本帖最后由 _ddqs. 于 2011-1-30 03:16 编辑

浏览相关注册表,别处找来参考的。。。
[HKEY_CLASSES_ROOT\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32]
@="C:\\Program Files\\internet explorer\\iexplore.exe"

[HKEY_CLASSES_ROOT\file\shell]
@="open"

[HKEY_CLASSES_ROOT\file\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_CLASSES_ROOT\ftp\shell]
@="open"

[HKEY_CLASSES_ROOT\ftp\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_CLASSES_ROOT\htmlfile\shell]
@="open"

[HKEY_CLASSES_ROOT\htmlfile\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_CLASSES_ROOT\HTTP\shell]
@="open"

[HKEY_CLASSES_ROOT\HTTP\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_CLASSES_ROOT\https\shell]
@="open"

[HKEY_CLASSES_ROOT\https\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_CLASSES_ROOT\InternetShortcut\shell]
@="open"

[HKEY_CLASSES_ROOT\InternetShortcut\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_CLASSES_ROOT\mhtmlfile\shell]
@="open"

[HKEY_CLASSES_ROOT\mhtmlfile\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32]
@="C:\\Program Files\\internet explorer\\iexplore.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\file\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\file\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htmlfile\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htmlfile\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\InternetShortcut\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\InternetShortcut\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mhtmlfile\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mhtmlfile\shell\open\command]
@=""C:\\Program Files\\internet explorer\\iexplore.exe" "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet]
@="IEXPLORE.EXE"
发表于 2011-1-30 15:01:54 | 显示全部楼层
收藏学习一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-4 03:09 , Processed in 0.085955 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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