elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  PeekMessage, WaitMessage (Ejemplo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PeekMessage, WaitMessage (Ejemplo)  (Leído 4,050 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
PeekMessage, WaitMessage (Ejemplo)
« en: 11 Enero 2009, 23:59 pm »

Hola estas son dos apis algo desconocidas, al menos para mi , y me llamaron mucho la atencion

nos evitan de utilizar un sublcass, ya que usa un bucle interceptando el msg buscado. ademas este bucle no consume el CPU.

pongo un ejemplito bien basico para interceptar la rueda del raton.


Código:
Option Explicit

Private Const PM_REMOVE = &H1

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Type Msg
    hwnd As Long
    Message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type

Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
Private Declare Function WaitMessage Lib "user32" () As Long
Private bCancel As Boolean

Private Const WM_MOUSEWHEEL = 522

Private Sub ProcessMessages()
Dim Message As Msg
Do While bCancel = False
    WaitMessage
    If PeekMessage(Message, Me.hwnd, WM_MOUSEWHEEL, WM_MOUSEWHEEL, PM_REMOVE) Then
         If Message.wParam < 0 Then
            Debug.Print "Scroll Down"
        Else
            Debug.Print "Scroll Up"
        End If
    End If
    DoEvents
    Loop
End Sub

Private Sub Form_Load()
Me.Show
ProcessMessages
End Sub

Private Sub Form_Unload(Cancel As Integer)
    bCancel = True
End Sub


En línea

aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: PeekMessage, WaitMessage (Ejemplo)
« Respuesta #1 en: 12 Enero 2009, 00:09 am »

Muy interesante, la verdad.

Saludos  ;)


En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: PeekMessage, WaitMessage (Ejemplo)
« Respuesta #2 en: 12 Enero 2009, 00:13 am »

Son buenas, no las conocía.

saludos
« Última modificación: 12 Enero 2009, 01:21 am por Dessa » En línea

Adrian Desanti
cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: PeekMessage, WaitMessage (Ejemplo)
« Respuesta #3 en: 12 Enero 2009, 00:22 am »

see esta muy bien Leandro  ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines