Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: demoniox12 en 27 Febrero 2009, 19:27 pm



Título: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 19:27 pm
Buenas...

He estado intentando realizar tabs para seleccionar otros links mediante sendmessage.. pero no me ha funcionado.. hago el click y no realiza ninguna accion.. dejo el source a ver si alguien encuentra el error..

Form:
Código
  1. Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Long
  2. Private Const WM_KEYDOWN = &H100
  3. Private Const WM_KEYUP = &H101
  4. Private Const VK_TAB = &H9
  5.  
  6. Private Sub Command1_Click()
  7. Dim hwnd As Long
  8. hwnd = GetBrowserHandle(Me.hwnd)
  9. SendMessage hwnd, WM_KEYDOWN, VK_TAB, 0&
  10. 'SendMessage hWnd, WM_KEYUP, VK_TAB, 0&
  11. End Sub
  12.  
  13. Private Sub Form_Load()
  14. WebBrowser1.Navigate "http://www.google.com"
  15. End Sub

Modulo:
Código
  1.      Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" ( _
  2.          ByVal hwnd As Long, _
  3.          ByVal lpClassName As String, _
  4.          ByVal nMaxCount As Long _
  5.      ) As Long
  6.  
  7.      Private Declare Function EnumChildWindows Lib "user32.dll" ( _
  8.          ByVal hWndParent As Long, _
  9.          ByVal lpEnumFunc As Long, _
  10.          ByVal lParam As Long _
  11.      ) As Long
  12.  
  13.      Private hWndIE As Long
  14.  
  15.  
  16.      Private Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
  17.          Dim sClassName As String
  18.          sClassName = String(255, vbNullChar)
  19.          Call GetClassName(hwnd, sClassName, 255)
  20.          sClassName = Left$(sClassName, InStr(sClassName, vbNullChar) - 1)
  21.          If sClassName <> "Internet Explorer_Server" Then
  22.              EnumChildProc = 1
  23.          Else
  24.              hWndIE = hwnd
  25.          End If
  26.      End Function
  27.  
  28.      Public Function GetBrowserHandle(ByVal hWndParent) As Long
  29.          hWndIE = 0
  30.          Call EnumChildWindows(hWndParent, AddressOf EnumChildProc, 1)
  31.          GetBrowserHandle = hWndIE
  32.      End Function
  33.  
  34.  


Encuentra el handle y todo del webbrowser pero no se porke no realiza los tabs en la pagina..

Saludos!


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: seba123neo en 27 Febrero 2009, 19:51 pm
Hola, y esto no te sirve?

Código
  1. Private Sub Command1_Click()
  2.    WebBrowser1.SetFocus
  3.    SendKeys "{tab}"
  4. End Sub
  5.  
  6. Private Sub Form_Load()
  7.    WebBrowser1.Navigate "http://www.google.com"
  8. End Sub

saludos.


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 20:13 pm
Hola, y esto no te sirve?

Código
  1. Private Sub Command1_Click()
  2.    WebBrowser1.SetFocus
  3.    SendKeys "{tab}"
  4. End Sub
  5.  
  6. Private Sub Form_Load()
  7.    WebBrowser1.Navigate "http://www.google.com"
  8. End Sub

saludos.

no.. porke el webbrowser estara oculto..

Saludos y gracias igual..


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: seba123neo en 27 Febrero 2009, 20:16 pm
oculto en que sentido?, en Visible = Flase o oculto a la vista del usuario poniendolo en cordenadas X,Y que no se vean...?


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 20:21 pm
oculto en que sentido?, en Visible = Flase o oculto a la vista del usuario poniendolo en cordenadas X,Y que no se vean...?

Visible = False


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: Dessa en 27 Febrero 2009, 20:40 pm
Hola, no se si correspňnde SendMessage para este caso pero me parece que estas mandando mal el mensaje


Private Const WM_CHAR = &H102
Private Const WM_BACK = &H8
Private Const WM_TAB = &H9


Call SendMessage(hwnd, WM_CHAR, VK_TAB, 0&)


Saludos


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: byway en 27 Febrero 2009, 20:42 pm
oculto en que sentido?, en Visible = Flase o oculto a la vista del usuario poniendolo en cordenadas X,Y que no se vean...?

Visible = False

segun tengo entendido un webnrowser en :

Visible = False ... no realiza ninguna accion (no navega), corriganme si me equivoco


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 20:44 pm
Hola, no se si correspňnde SendMessage para este caso pero me parece que estas mandando mal el mensaje


Private Const WM_CHAR = &H102
Private Const WM_BACK = &H8
Private Const WM_TAB = &H9


Call SendMessage(hwnd, WM_CHAR, VK_TAB, 0&)


Saludos


Tira error de desbordamiento..

oculto en que sentido?, en Visible = Flase o oculto a la vista del usuario poniendolo en cordenadas X,Y que no se vean...?

Visible = False

segun tengo entendido un webnrowser en :

Visible = False ... no realiza ninguna accion (no navega), corriganme si me equivoco

el Form es el que estara invisible..


Saludos!


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: Novlucker en 27 Febrero 2009, 20:50 pm
Navega, no se ve, y por ende no se puede utilizar sendkey  :rolleyes:
Creo que es más sencillo hacer lo que buscas sin tener que estar haciendo eso  :-X

Saludos


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: Dessa en 27 Febrero 2009, 20:52 pm
SenMessage está mal declarado

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Saludos


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 20:55 pm
SenMessage está mal declarado

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Saludos


Ahora no tira desbordamiento pero no realiza ninguna accion.

Saludos!


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: Dessa en 27 Febrero 2009, 20:59 pm
No estaras llegando al hwnd  que corresponde ya que así se manda un Tab con SenMessage

Call SendMessage(hwnd, WM_CHAR, WM_TAB , 0&)

Saludos




Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 21:01 pm
No estaras llegando al hwnd  que corresponde ya que así se manda un Tab con SenMessage

Call SendMessage(hwnd, WM_CHAR, WM_TAB , 0&)

Saludos




Si  estoy llegando,  lo comprobe con el WinID me da el mismo hwnd que el que me devuelve la funcion GetBrowserHandle... 

Saludos!


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: seba123neo en 27 Febrero 2009, 21:02 pm
porque no listas todos los links de la web...en realidad tendrias que comentar para que realmente necesitas hacer eso...para ver si hay otra forma...


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: Dessa en 27 Febrero 2009, 21:08 pm
Hola, no se si correspňnde SendMessage para este caso pero me parece que estas mandando mal el mensaje


Private Const WM_CHAR = &H102
Private Const WM_BACK = &H8
Private Const WM_TAB = &H9


Call SendMessage(hwnd, WM_CHAR, VK_TAB, 0&)


Saludos




Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: Novlucker en 27 Febrero 2009, 21:12 pm
Esta claro para que lo quiere  :rolleyes:

https://foro.elhacker.net/programacion_vb/realizar_un_click_en_el_webbrowser-t245327.0.html

Saludos


Título: Re: Realizar tabs en un webbrowser mediante SendMessage
Publicado por: demoniox12 en 27 Febrero 2009, 21:16 pm
porque no listas todos los links de la web...en realidad tendrias que comentar para que realmente necesitas hacer eso...para ver si hay otra forma...

El fin es clickear una publicidad de adsense..

por medio de document.frames......links.click es inalcanzable ya que da acceso denegado..

por medio de focus y click tmb da acceso denegado..

por medio de winsock no lo he logrado.. obtengo todo el javascript pero no logro descifrarlo esta muy pero muy complejo...

entonces lo que quiero es hacer tabs hasta llegar a la publicidad y ahi mandar un mouse_down

Saludos!