Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Maik33 en 15 Junio 2010, 09:44 am



Título: Ayuda MousePointer
Publicado por: Maik33 en 15 Junio 2010, 09:44 am
Hola,

Yo quisiera saber si se puede saber el nombre del puntero del raton actual, por ejemplo
cuando pongo el raton encima de una cara de estas( :D ) sale una mano, o cuando sale el raton cargando. Pues cuando cambie de estado que me diga como se llama o el numero de referencia o algo.
Se puede?

Lo que he probado a sido un timer que cuando cambie de estado haga lo siguiente:

Código
  1. Text1.Text = Text1.Text & Screen.MousePointer & vbNewLine

pero solo me escribia algo cuando cambiaba el puntero del form mio.

Gracias.


Título: Re: Ayuda MousePointer
Publicado por: Maik33 en 15 Junio 2010, 10:54 am
Bueno ya encontre algo, pa quien le interese


Código
  1. Private Declare Function GetCursor Lib "user32" () As Long
  2.  
  3. Dim c1 As Long, c2 As Long
  4.  
  5. Private Sub Form_Load()
  6.      c1 = GetCursor
  7.      Timer1.Interval = 1
  8. End Sub
  9.  
  10. Private Sub Timer1_Timer()
  11.      c2 = GetCursor
  12.      If c2 <> c1 Then
  13.            c1 = c2
  14.            Me.Print c1
  15.      End If
  16. End Sub


Título: Re: Ayuda MousePointer
Publicado por: BlackZeroX en 15 Junio 2010, 11:00 am
Es mejor subclasificar al Form en lugar de usar un Timer!¡... Bueno es lo que yo haria!¡.

Dulce Infierno Lunar!¡.


Título: Re: Ayuda MousePointer
Publicado por: Maik33 en 15 Junio 2010, 11:04 am
que quieres decir con subclasificar? me pones un ejemplo?

Aparte de esas preguntas me salio un problema, solo funciona cuando cambia dentro del form o en donde el diseño de visual basic, en este foro por ejemplo no funciona, alguna idea?


Título: Re: Ayuda MousePointer
Publicado por: LeandroA en 15 Junio 2010, 12:08 pm
GetCursor es solo valido para la instancia para el cursor en general usa GetCursorInfo, en este caso no te serviria de nada subclasificar quizas hooks sea lo mas apropiado.

Código:
Option Explicit
Private Declare Function GetCursorInfo Lib "user32.dll" (ByRef pci As PCURSORINFO) As Long

Private Type POINTAPI
    x               As Long
    y               As Long
End Type

Private Type PCURSORINFO
    cbSize          As Long
    flags           As Long
    hCursor         As Long
    ptScreenPos     As POINTAPI
End Type


Dim CI As PCURSORINFO
Dim hMemCursor As Long


Private Sub Form_Load()
    CI.cbSize = Len(CI)
    GetCursorInfo CI
    hMemCursor = CI.hCursor
   
    Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
    CI.cbSize = Len(CI)
    GetCursorInfo CI
       
    If hMemCursor <> CI.hCursor Then
          hMemCursor = CI.hCursor
          Me.Print hMemCursor
    End If
End Sub



Título: Re: Ayuda MousePointer
Publicado por: Maik33 en 15 Junio 2010, 13:11 pm
Muchas gracias funciona :D, una duda, lo del tipo pointapi x & y no hace falta no? eso se una para GetCursorPos no?
Otra ves muxas gracias