AM电脑吧 - Win10精简版系统_Win11精简版_Win7旗舰版

Yes
查看: 4245|回复: 4
收起左侧

内嵌IE不弹出新窗口.au3

[复制链接]
ampc8110

签到天数: 3 天

[LV.2]二兆带宽

id fuldho 发表于 2011-08-17 15:37:30
速度有点慢,有待改进。

#include <IE.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)

_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
$url = "https://www.ampc8.com"
GUICreate("AM电脑吧", 700, 600, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_MAXIMIZE, $WS_SIZEBOX))
GUISetOnEvent($GUI_EVENT_CLOSE, "_DeleteWin")
$AX = GUICtrlCreateObj($oIE, 0, 0, @DesktopWidth, @DesktopHeight - 35)
_IENavigate($oIE, $url)
_self()
GUISetState()

While 1
        If $oIE.readyState <> 4 Then _self()
WEnd

Func _self()
        GUICtrlSetState($AX, $GUI_HIDE)
        _IELoadWait($oIE)
        $As = _IETagNameGetCollection($oIE, "a")
        For $A In $As
                $A.target = "_self"
        Next
       
        $Forms = _IEFormGetCollection($oIE)
        For $Form In $Forms
                $Form.target = "_self"
        Next
       
        $Frames = _IEFrameGetCollection($oIE)
        If $Frames <> 0 Then
                For $Frame In $Frames
                        $As = _IETagNameGetCollection($Frame, "a")
                        For $A In $As
                                $A.target = "_self"
                        Next
                Next
        EndIf
        GUICtrlSetState($AX, $GUI_SHOW)
EndFunc   ;==>_self

Func _DeleteWin()
        Exit
EndFunc   ;==>_DeleteWin

本文地址: https://www.ampc8.com/thread-3051-1-1.html
上一篇:七夕情人节精美XP主题(今天是情人节,祝大家快乐!)
下一篇:水上小镇、冰封的爱、金钟铉、猫猫许愿等精美XP主题
回复

举报

ampc8110

签到天数: 3 天

[LV.2]二兆带宽

lz  楼主| fuldho 发表于 2011-08-18 10:01:34
回复 3# dmqhcx88


    改的不错!不过这样改仍然会弹出新窗口。
回复

举报

ampc81

签到天数: 644 天

[LV.9]九级电脑高手

id 发表于 2011-08-18 08:08:56
楼上的是有改进,不错 。
回复

举报

ampc8224

签到天数: 230 天

[LV.7]七个CPU

id dmqhcx88 发表于 2011-08-18 06:48:44
带地址栏输入的例子,可作为简单浏览器使用,

  1. #include <ButtonConstants.au3>
  2. #include "GUIConstantsEx.au3"
  3. #include <WindowsConstants.au3>
  4. #include <WinAPI.au3>
  5. #include <IE.au3>
  6. #include <Misc.au3>
  7. Opt("GUIOnEventMode", 1)
  8. Local $r = 1,$i = 0 ,$t = 0, $n = 0,$b = 0,$Text,$Text2="",$URL = "http://www.2055.com/"
  9. Local $Form80,$Form[5],$Form2,$Button2,$Button3,$Button4,$Button5
  10. $dll = DllOpen("user32.dll")   
  11. $WebBrowser2=ObjCreate("Shell.Explorer.2")
  12. $Form0 = GUICreate("AM电脑吧 test", 623, 449, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_MAXIMIZE, $WS_SIZEBOX))  ;主窗体
  13. GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")            
  14. $Graphic1 = GUICtrlCreateGraphic(0, 0, @DesktopWidth, 0)   
  15. GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 0, 30)              
  16. GUICtrlSetGraphic(-1, $GUI_GR_LINE, @DesktopWidth, 30)  

  17. $Button1 = GUICtrlCreateButton("首页", 0, 36, 110, 25)   
  18. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  19. $Button75 = GUICtrlCreateButton("停止", 0, 0, 40, 30)        
  20. GUICtrlSetResizing (-1, $GUI_DOCKALL)                        
  21. $Button76 = GUICtrlCreateButton("前进", 45, 0, 40, 30)
  22. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  23. $Button77 = GUICtrlCreateButton("后退", 90, 0, 40, 30)
  24. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  25. $Button78 = GUICtrlCreateButton("刷新", 135, 0, 40, 30)
  26. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  27. $Button79 = GUICtrlCreateButton("主页", 180, 0, 40, 30)
  28. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  29. $Button81 = GUICtrlCreateButton("退出", 225, 0, 40, 30)
  30. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  31. $Button80 = GUICtrlCreateButton("帮助", 270, 0, 40, 30)
  32. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  33. $Button82 = GUICtrlCreateButton("确定", 800, 5, 40, 20)      
  34. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  35. $address_bar_label = GUICtrlCreateLabel("地址: ", 335, 8, 40, 20)  
  36. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  37. Global $ini = "autoit.ini"
  38. $iniread = IniRead($ini, "URL", "LAST URL", " ")
  39. Global $read_homepage = IniRead($ini, "Settings", "Homepage", "")
  40. Global $read_starthomepage = IniRead($ini, "Settings", "StartHomepage", "")
  41. If $read_starthomepage = "0" Then $read_homepage = $iniread
  42. $address_bar_input = GUICtrlCreateInput($read_homepage, 390, 5, 400, -1)      
  43. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  44. GUICtrlSetOnEvent($Button1, "Activate1")                           
  45. GUICtrlSetOnEvent($Button75, "Activate75")
  46. GUICtrlSetOnEvent($Button76, "Activate76")
  47. GUICtrlSetOnEvent($Button77, "Activate77")
  48. GUICtrlSetOnEvent($Button78, "Activate78")
  49. GUICtrlSetOnEvent($Button79, "Activate79")
  50. GUICtrlSetOnEvent($Button80, "Activate80")
  51. GUICtrlSetOnEvent($Button81, "Activate81")                 
  52. GUICtrlSetOnEvent($Button82, "address_bar_input")
  53. $status_bar = GUICtrlCreateLabel("载入: " & $read_homepage & "...", 0, 584, "", "", BitOR(11, 0x1000))
  54. GUISetState(@SW_SHOW)
  55. ;------------------------------------------------
  56. $Form1 = GUICreate("首窗", 1024, 650, 0, 60,$WS_POPUP)                     
  57. DllCall("user32.dll","hwnd","SetParent","hwnd",$Form1,"hwnd",$Form0)     
  58. $WebBrowser1=ObjCreate("Shell.Explorer.2")                                 
  59. GUICtrlCreateObj($WebBrowser1,0, 0, 1024, 750)                            ;设置IE对象大小
  60. $EventObject=ObjEvent($WebBrowser1,"IEEvent_","DWebBrowserEvents")      
  61. if @error then exit Msgbox(0,"错误!","不可使用COM接口 'DWebBrowserEvents'. 错误代码: " & hex(@error,8))
  62. $Timer = DllCallbackRegister("Timer", "int", "hwnd;uint;uint;dword")   
  63. $TimerDLL = DllCall($dll, "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 10, "ptr", DllCallbackGetPtr($Timer))

  64. $WebBrowser1.Navigate( $URL)           
  65. GUISetState(@SW_SHOW)
  66. GUISwitch ($Form0)                     
  67. ;-------------------------------------------------------------
  68. While 1
  69.                 Sleep (1)
  70.                 $cursor = _WinAPI_GetCursorInfo()                           
  71.            If $cursor[2]=65581 And _IsPressed("1", $dll) Then
  72.                                 WinSetOnTop($Form1,"",1)
  73.                  MsgBox(0,"IE内嵌不新建IE窗口", "0",1,WinGetHandle("Program Manager"))
  74.                         WinSetOnTop($Form1,"",0)
  75.                 If $Text2<>"" Then
  76.                 WebBrowser1_Navigate()                          
  77.                 EndIf                                
  78.                    EndIf
  79.                 $msg = GUIGetMsg()
  80. Wend
  81. ;-------------------------------------------------------------
  82. Func WebBrowser1_Navigate()
  83.             GUISwitch($Form0)  
  84.                 $r = $r + 1
  85.             $Form[$r] = GUICreate($Text2, 1024, 650, 0, 60,$WS_POPUP)  ;设置$Form[$r]作为装载IE新页面的窗体
  86.                 _WinAPI_SetParent($Form[$r],$Form0)                       
  87.                
  88.                 $WebBrowser2=ObjCreate("Shell.Explorer.2")
  89.         GUICtrlCreateObj($WebBrowser2, -12, 0, 1024, 750)   
  90.                 $EventObject=ObjEvent($WebBrowser2,"IEEvent_","DWebBrowserEvents")
  91.                 if @error then exit Msgbox(0,"错误!","不可使用COM接口 'DWebBrowserEvents'. 错误代码: " & hex(@error,8))
  92.         $Timer = DllCallbackRegister("Timer", "int", "hwnd;uint;uint;dword")
  93.         $TimerDLL = DllCall($dll, "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 10, "ptr", DllCallbackGetPtr($Timer))
  94.                
  95.         $WebBrowser2.Navigate( $Text2 )
  96.                 GUISetState(@SW_SHOW)
  97. EndFunc
  98. ;--------------------------------------------
  99. Func IEEvent_TitleChange($URL)               
  100. $WR = IniRead ("web.ini","Button","Refresh","1")
  101. $WF = IniRead ("web.ini","Button","Forward","1")
  102. $WG = IniRead ("web.ini","Button","GoBack","1")
  103. If $WR =1  And StringCompare ($URL,$WebBrowser2.LocationName) <> 0 And StringInStr($URL, "_") ="_" And StringLeft($URL,4)<>"http" Then         
  104. $i = $i + 1
  105. IniWrite("title.ini", "www","title"&$i, $URL)   ; 将所获得的URL标题写入配置ini文件
  106. EndIf
  107. wwwTab()
  108. IniDelete ("web.ini","Button", "Refresh")
  109. IniDelete ("web.ini","Button", "Forward")
  110. IniDelete ("web.ini","Button", "GoBack")
  111. EndFunc
  112. ;----------------------------------------
  113. Func IEEvent_StatusTextChange ($Text)   
  114. If $Text<>'' And StringLeft($Text,4)="http" Then $Text2=$Text
  115. EndFunc
  116. ;====================================================================================
  117. Func wwwTab()
  118.         GUISwitch ($Form0)        
  119.         $var2 = IniRead("title.ini", "www", "title2", "no")
  120.         $var3 = IniRead("title.ini", "www", "title3", "no")
  121.         $var4 = IniRead("title.ini", "www", "title4", "no")
  122.         $var5 = IniRead("title.ini", "www", "title5", "no")
  123. $Button2 = GUICtrlCreateButton($var2, 110, 36, 110, 25)
  124. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  125. $contextmenu2 = GUICtrlCreateContextMenu ($Button2)         
  126. $FormCLOSE2 = GUICtrlCreateMenuitem ("关闭",$contextmenu2)
  127. GUICtrlSetOnEvent($FormCLOSE2, "FormCLOSE2")

  128. $Button3 = GUICtrlCreateButton($var3, 220, 36, 110, 25)
  129. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  130. $contextmenu3 = GUICtrlCreateContextMenu ($Button3)        
  131. $FormCLOSE3 = GUICtrlCreateMenuitem ("关闭",$contextmenu3)
  132. GUICtrlSetOnEvent($FormCLOSE3, "FormCLOSE3")
  133. $Button4 = GUICtrlCreateButton($var4, 330, 36, 110, 25)
  134. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  135. $contextmenu4 = GUICtrlCreateContextMenu ($Button4)         
  136. $FormCLOSE4 = GUICtrlCreateMenuitem ("关闭",$contextmenu4)
  137. GUICtrlSetOnEvent($FormCLOSE4, "FormCLOSE4")
  138. $Button5 = GUICtrlCreateButton($var5, 440, 36, 110, 25)
  139. GUICtrlSetResizing (-1, $GUI_DOCKALL)
  140. $contextmenu5 = GUICtrlCreateContextMenu ($Button5)        
  141. $FormCLOSE5 = GUICtrlCreateMenuitem ("关闭",$contextmenu5)
  142. GUICtrlSetOnEvent($FormCLOSE5, "FormCLOSE5")
  143. GUICtrlSetOnEvent($Button2, "Activate2")
  144. GUICtrlSetOnEvent($Button3, "Activate3")
  145. GUICtrlSetOnEvent($Button4, "Activate4")
  146. GUICtrlSetOnEvent($Button5, "Activate5")
  147. If $var2 = "no" Then
  148.         GUICtrlSetState ( $Button2, $GUI_HIDE)
  149.   Else                                       
  150.         GUICtrlSetState ( $Button2, $GUI_SHOW)  
  151. EndIf
  152. If $var3 = "no" Then
  153.         GUICtrlSetState ( $Button3, $GUI_HIDE)
  154. Else
  155.         GUICtrlSetState ( $Button3, $GUI_SHOW)
  156. EndIf
  157. If $var4 = "no" Then
  158.         GUICtrlSetState ( $Button4, $GUI_HIDE)
  159. Else
  160.         GUICtrlSetState ( $Button4, $GUI_SHOW)
  161. EndIf
  162. If $var5 = "no" Then
  163.         GUICtrlSetState ( $Button5, $GUI_HIDE)
  164. Else
  165.         GUICtrlSetState ( $Button5, $GUI_SHOW)
  166. EndIf
  167. EndFunc   ;==>wwwTab()  自定义的窗体按钮标签事件
  168. ;=================================================================
  169. Func Activate1()
  170.         _WinAPI_SetParent($Form1,$Form0)              
  171. EndFunc   ;==>Activate1
  172. Func Activate2()
  173.                  _WinAPI_SetParent($Form[2],$Form0)
  174. EndFunc   ;==>Activate2
  175. Func Activate3()
  176.          _WinAPI_SetParent($Form[3],$Form0)        
  177. EndFunc   ;==>Activate3
  178. Func Activate4()
  179.              _WinAPI_SetParent($Form[4],$Form0)
  180. EndFunc   ;==>Activate4
  181. Func Activate5()
  182.              _WinAPI_SetParent($Form[5],$Form0)
  183. EndFunc   ;==>Activate5
  184.         
  185. ;----------------------------------------------------------------
  186. Func Activate75()
  187.         _IEErrorHandlerRegister ("MyErrFunc_Stop")
  188.         $WebBrowser2.Stop
  189. EndFunc   ;==>Activate75
  190. Func Activate76()
  191.         _IEErrorHandlerRegister ("MyErrFunc_Forward")     
  192.         $WebBrowser2.GoForward
  193.     IniWrite ("web.ini", "Button", "Forward", "et" )        
  194. EndFunc   ;==>Activate76
  195. Func Activate77()
  196.    _IEErrorHandlerRegister ("MyErrFunc_GoBack")
  197.         $WebBrowser2.GoBack
  198.     IniWrite ("web.ini", "Button", "GoBack", "et" )        
  199. EndFunc   ;==>Activate77
  200. Func Activate78()
  201.         _IEErrorHandlerRegister ("MyErrFunc_Refresh")
  202.         $WebBrowser2.Refresh  
  203.         IniWrite ("web.ini", "Button", "Refresh", "et" )
  204. EndFunc   ;==>Activate78
  205. Func Activate79()
  206.         _IEErrorHandlerRegister ("MyErrFunc_Navigate")
  207.         $WebBrowser2.Navigate
  208. EndFunc   ;==>Activate79
  209. Func Activate80()
  210.          GUISwitch ($Form0)
  211.      $Form80 = GUICreate("帮助", 400, 300, 250, 214)
  212.          $Button801 = GUICtrlCreateButton("关闭", 88, 180, 150, 30)
  213.          GUICtrlSetOnEvent($Button801, "CLOSEActivate80")
  214.      GUISetState(@SW_SHOW)
  215. EndFunc   ;==>Activate80
  216. Func CLOSEActivate80()
  217.         _WinAPI_SetParent($Form80,$Form0)
  218.         _WinAPI_MoveWindow($Form80, 0, 0, 0, 0, True)
  219. EndFunc   ;==>Activate81
  220. Func FormCLOSE2()
  221.   _WinAPI_MoveWindow($Form[2], 0, 0, 0, 0, True)
  222.   GUICtrlSetState ($Button2, $GUI_HIDE)
  223.   IniDelete ("title.ini", "www", "title2")
  224. EndFunc
  225. Func FormCLOSE3()
  226.   _WinAPI_MoveWindow($Form[3], 0, 0, 0, 0, True)
  227.   GUICtrlSetState ($Button3, $GUI_HIDE)
  228.   IniDelete ("title.ini", "www", "title3")
  229. EndFunc
  230. Func FormCLOSE4()
  231.   _WinAPI_MoveWindow($Form[4], 0, 0, 0, 0, True)
  232.   GUICtrlSetState ($Button4, $GUI_HIDE)
  233.   IniDelete ("title.ini", "www", "title4")
  234. EndFunc
  235. Func FormCLOSE5()
  236.   _WinAPI_MoveWindow($Form[5], 0, 0, 0, 0, True)
  237.   GUICtrlSetState ($Button5, $GUI_HIDE)
  238.   IniDelete ("title.ini", "www", "title5")
  239. EndFunc
  240. ;----------------------------------------------------------------
  241. Func Timer($hWnd, $uiMsg, $idEvent, $dwTime)
  242.         If WinExists("IE内嵌不新建IE窗口") Then
  243.                 WinMove("IE内嵌不新建IE窗口","",@DesktopWidth,@DesktopHeight,0,0,1)
  244.                 Send("{Enter}")
  245.         EndIf
  246. EndFunc
  247. ;-----------------------------------------------------------------
  248. Func MyErrFunc_Stop()
  249.     $ErrorOutput = ""
  250.     $ErrorOutput &= "停止打开!"
  251.     MsgBox(0,"COM Error", $ErrorOutput)
  252.     SetError(1)
  253.     Return
  254. EndFunc  ;==>MyErrFunc_Stop
  255. Func MyErrFunc_Forward()
  256.     $ErrorOutput = ""
  257.     $ErrorOutput &= "无法前进!"
  258.     MsgBox(0,"COM Error", $ErrorOutput)
  259.     SetError(1)
  260.     Return
  261. EndFunc  ;==>MyErrFunc_Forward
  262. Func MyErrFunc_GoBack()
  263.     $ErrorOutput = ""
  264.     $ErrorOutput &= "无法后退!"
  265.     MsgBox(0,"COM Error", $ErrorOutput)
  266.     SetError(1)
  267.     Return
  268. EndFunc  ;==>MyErrFunc_GoBack
  269. Func MyErrFunc_Refresh()
  270.     $ErrorOutput = ""
  271.     $ErrorOutput &= "无法刷新!"
  272.     MsgBox(0,"COM Error", $ErrorOutput)
  273.     SetError(1)
  274.     Return
  275. EndFunc  ;==>MyErrFunc_Refresh
  276. Func MyErrFunc_Navigate()
  277.     $ErrorOutput = ""
  278.     $ErrorOutput &= "没有主页!"
  279.     MsgBox(0,"COM Error", $ErrorOutput)
  280.     SetError(1)
  281.     Return
  282. EndFunc  ;==>MyErrFunc_Navigate
  283. ;----------------------------------------------------------------
  284. Func address_bar_input()
  285.         $addy = GUICtrlRead($address_bar_input)
  286.                 _StatusChange("Loading: " & $addy & "...")
  287.                  WebBrowser1_Navigate()
  288.          $WebBrowser2.Navigate( $addy)
  289.             _StatusChange("Done.")
  290. EndFunc
  291. Func _StatusChange($message)
  292.     GUICtrlSetData($status_bar, $message)
  293. EndFunc   ;==>_StatusChange
  294. ;----------------------------------------------------------------
  295. Func CLOSE()
  296.                                 $EventObject.Stop  
  297.                 $EventObject=0     
  298.                 $WebBrowser1=0              ; 清除内存
  299.                 GUIDelete ()  
  300.                 DllCall($dll, "int", "KillTimer", "hwnd", 0, "uint", $TimerDLL)
  301.                 DllCallbackFree($Timer)
  302.                 DllClose($dll)
  303.                                 FileDelete("ini.ini")   ;直接删除
  304.                     FileDelete("title.ini")
  305.                     FileDelete("url.ini")
  306.                   
  307.                                 Exit
  308. EndFunc
  309. Func Activate81()
  310.         CLOSE()  
  311. EndFunc   ;==>Activate81
  312. Func CLOSEClicked()
  313.         CLOSE()                        
  314. EndFunc
复制代码
回复

举报

ampc81

签到天数: 644 天

[LV.9]九级电脑高手

id 发表于 2011-08-17 17:48:45
如果有人能添加 地址栏那些 就好了 。
回复

举报

您需要登录后才可以回帖 登录 | 验证注册

Powered by AMpc8.Com (晋ICP备13003365号ghs 晋公网安备 14090202000112号 |GMT+8, 2024/4/27 14:59 |
快速回复 返回顶部 返回列表