以下代码实现在地址栏里输入www.baidu.com自动转换www.google.com.hk: 1、引用“Micrsoft Internet Controls”和“Microsoft HTML Object Library”。注意是引用而不是添加“Micrsoft Internet Controls”部件。 2、添加一个类,命名为IeEvent,代码如下:Public WithEvents m_objIE As InternetExplorerPrivate Sub Class_Terminate() Set m_objIE = Nothing End Sub
Private Sub m_objIE_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean) If InStr(URL, "www.baidu.com") > 0 Then Cancel = True m_objIE.Navigate2 "http://www.google.com.hk" End If End SubPrivate Sub m_objIE_OnQuit() Set m_objIE = Nothing End Sub3、窗口代码里如下:Dim WithEvents m_shWindows As ShellWindows Dim m_ieEvent() As IeEvent Dim m_nIeCount As LongPrivate Sub Form_Load() Dim objIE As InternetExplorer
Set m_shWindows = New ShellWindows For Each objIE In m_shWindows If InStr(objIE.FullName, "\iexplore.exe") Then ReDim Preserve m_ieEvent(m_nIeCount) Set m_ieEvent(m_nIeCount) = New IeEvent Set m_ieEvent(m_nIeCount).m_objIE = objIE m_nIeCount = m_nIeCount + 1 End If Next End Sub
Private Sub Form_Unload(Cancel As Integer) Dim i As Long
For i = 0 To m_nIeCount - 1 Set m_ieEvent(i) = Nothing Next Erase m_ieEvent End Sub
Private Sub m_shWindows_WindowRegistered(ByVal lCookie As Long) Dim objIE As InternetExplorer
Set objIE = m_shWindows(m_shWindows.Count - 1) If InStr(objIE.FullName, "\iexplore.exe") = 0 Then Exit Sub ReDim Preserve m_ieEvent(m_nIeCount) Set m_ieEvent(m_nIeCount) = New IeEvent Set m_ieEvent(m_nIeCount).m_objIE = objIE m_nIeCount = m_nIeCount + 1 End Sub
Private Sub m_shWindows_WindowRevoked(ByVal lCookie As Long) Dim i As Long Dim blnFound As Boolean
For i = 0 To m_nIeCount - 1 If m_ieEvent(i).m_objIE Is Nothing Then blnFound = True If blnFound Then If i = m_nIeCount - 1 Then Exit For Set m_ieEvent(i) = m_ieEvent(i + 1) End If Next m_nIeCount = m_nIeCount - 1 If m_nIeCount > 0 Then ReDim Preserve m_ieEvent(m_nIeCount - 1) End Sub
' 引用ieframe.dll Private Sub Command1_Click() Dim w Dim s As New SHDocVw.ShellWindows For Each w In s If InStr (w.LocationURL, "baidu.com" ) > 0 Then MsgBox TypeName (w) w.Navigate ( "http://127.0.0.1/" ) End If Next End Sub 用定时器没隔一定的时间执行一下上面的代码。参照:http://blog.csdn.net/sysdzw/archive/2009/09/23/4583694.aspx
1、引用“Micrsoft Internet Controls”和“Microsoft HTML Object Library”。注意是引用而不是添加“Micrsoft Internet Controls”部件。
2、添加一个类,命名为IeEvent,代码如下:Public WithEvents m_objIE As InternetExplorerPrivate Sub Class_Terminate()
Set m_objIE = Nothing
End Sub
Private Sub m_objIE_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
If InStr(URL, "www.baidu.com") > 0 Then
Cancel = True
m_objIE.Navigate2 "http://www.google.com.hk"
End If
End SubPrivate Sub m_objIE_OnQuit()
Set m_objIE = Nothing
End Sub3、窗口代码里如下:Dim WithEvents m_shWindows As ShellWindows
Dim m_ieEvent() As IeEvent
Dim m_nIeCount As LongPrivate Sub Form_Load()
Dim objIE As InternetExplorer
Set m_shWindows = New ShellWindows
For Each objIE In m_shWindows
If InStr(objIE.FullName, "\iexplore.exe") Then
ReDim Preserve m_ieEvent(m_nIeCount)
Set m_ieEvent(m_nIeCount) = New IeEvent
Set m_ieEvent(m_nIeCount).m_objIE = objIE
m_nIeCount = m_nIeCount + 1
End If
Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim i As Long
For i = 0 To m_nIeCount - 1
Set m_ieEvent(i) = Nothing
Next
Erase m_ieEvent
End Sub
Private Sub m_shWindows_WindowRegistered(ByVal lCookie As Long)
Dim objIE As InternetExplorer
Set objIE = m_shWindows(m_shWindows.Count - 1)
If InStr(objIE.FullName, "\iexplore.exe") = 0 Then Exit Sub
ReDim Preserve m_ieEvent(m_nIeCount)
Set m_ieEvent(m_nIeCount) = New IeEvent
Set m_ieEvent(m_nIeCount).m_objIE = objIE
m_nIeCount = m_nIeCount + 1
End Sub
Private Sub m_shWindows_WindowRevoked(ByVal lCookie As Long)
Dim i As Long
Dim blnFound As Boolean
For i = 0 To m_nIeCount - 1
If m_ieEvent(i).m_objIE Is Nothing Then blnFound = True
If blnFound Then
If i = m_nIeCount - 1 Then Exit For
Set m_ieEvent(i) = m_ieEvent(i + 1)
End If
Next
m_nIeCount = m_nIeCount - 1
If m_nIeCount > 0 Then ReDim Preserve m_ieEvent(m_nIeCount - 1)
End Sub
能不能让已经打开了网页的Internet Explorer_Server控件页面地址跳转呢?
不在IE下没有地址栏的情况,因为问题是为了把事情描述清楚,所以用IE来做示例。
Private Sub Command1_Click()
Dim w
Dim s As New SHDocVw.ShellWindows
For Each w In s
If InStr (w.LocationURL, "baidu.com" ) > 0 Then
MsgBox TypeName (w)
w.Navigate ( "http://127.0.0.1/" )
End If
Next
End Sub
用定时器没隔一定的时间执行一下上面的代码。参照:http://blog.csdn.net/sysdzw/archive/2009/09/23/4583694.aspx