Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 10 Junio 2010, 11:47 AM

Título: Problema con SendMessage [AYUDA]
Publicado por: Psyke1 en 10 Junio 2010, 11:47 AM
Hola, a ver si me podeis ayudar, porque sinceramente no se lo que puede pasar... :-(
Tengo esto:
Código (vb) [Seleccionar]

Option Explicit

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

Private Sub Form_Load()
   Timer1.Interval = 1500: Text1 = "HOla amigosssss"
End Sub

Private Sub Timer1_Timer()
   Call SendMessage(Text1.hwnd, &H102, vbKeyLeft, 0&)
End Sub

Entonces se supone que cada 1500 ms la posicion del texto deberia moverse un sitio a la izquierda, ¿no? Pero en el text box me va añadiendo el caracter %...  :o
Y si pongo vbKeySpace funciona bien, me va añadiendo espacios, pero porque falla con vbKeyLeft??? :huh:

Gracias! :-*
Título: Re: Problema con SendMessage [AYUDA]
Publicado por: raul338 en 10 Junio 2010, 17:00 PM
Si lo que quieres hacer es cambiar el cursor de posicion (presionar flechitas) estas enviando el mensaje equivocado

El mensaje WM_CHAR (&H102) es para agregar un caracter, y el valor de la flechita en ascii es "%" (creo)

Asi que tienes que enviar un mensaje que presione teclas: WM_KEYDOWN

el code quedaria asi:

Código (vb) [Seleccionar]

Option Explicit

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Any, ByVal lParam As Long) As Long
Private Const WM_KEYDOWN As Long = &H100

Private Sub Form_Load()
    Timer1.Interval = 1500: Text1 = "HOla amigosssss"
End Sub

Private Sub Timer1_Timer()
    Call SendMessage(Text1.hwnd, WM_KEYDOWN, vbKeyRight, 0&)
End Sub


:) espero que te sirva!!
Título: Re: Problema con SendMessage [AYUDA]
Publicado por: Psyke1 en 10 Junio 2010, 18:09 PM
SII!
Funciona!
Gracias tio! ;-)

Salu2!