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 4 Mayo 2010, 00:25 AM

Título: [Resuelto] Pulsar mouse
Publicado por: Psyke1 en 4 Mayo 2010, 00:25 AM
HOola, miren que facil se lo voy a poner con una duda tan sencilla, necesito saber como hago para que si pulso el boton derecho del raton salga un msgbox, por ejemplo... Tienen que tener en cuenta que no es sobre un formulario, que seria asi:
Código (vb) [Seleccionar]

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   MsgBox "hola"
End sub


Gracias!! ;D
Título: Re: [ayuda] Pulsar mouse
Publicado por: xmbeat92 en 4 Mayo 2010, 00:56 AM
SubClasifica el objeto en el que quieres que lo detecte o tambien puedes hacer un hook al Mouse
Título: Re: [ayuda] Pulsar mouse
Publicado por: Psyke1 en 4 Mayo 2010, 01:01 AM
Utilizo esto:
Código (vb) [Seleccionar]

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim x As Integer

Private Sub Timer1_Timer()

   If GetAsyncKeyState(1) = -32767 Then
         x = x +1
   End If
   
End Sub

Pero quiero hacer que si lo mantengo pulsado sume 1 a x varias veces , entiendes??

Salu2! ;D
Título: Re: [ayuda] Pulsar mouse
Publicado por: Psyke1 en 4 Mayo 2010, 14:57 PM
alguien me podria echar una mano??? no creo que sea muy dificil... :huh: :huh:

Muchas gracias! ;D
Título: Re: [ayuda] Pulsar mouse
Publicado por: Nanoc en 6 Mayo 2010, 02:26 AM
Obviamente con una api que captura las teclas asincronamente no lo vas a conseguir, esa api se suele utilizar en keyloggers simples en conjunto con getkeystate() creo.

la forma profesional seria hacer un hook de teclado.
La forma sencilla seria buscar la api apropiada, si es que existe alguna.

Espero haberte ayudado
Título: Re: [ayuda] Pulsar mouse
Publicado por: xkiz ™ en 6 Mayo 2010, 05:58 AM
Código (vb) [Seleccionar]

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then MsgBox "hola"
End Sub
Título: Re: [ayuda] Pulsar mouse
Publicado por: Psyke1 en 6 Mayo 2010, 11:04 AM
Cita de: xkiz en  6 Mayo 2010, 05:58 AM
Código (vb) [Seleccionar]

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then MsgBox "hola"
End Sub
Esto es lo que no me funciona, aunque agradezco la ayuda xkiz... Es lo que queria poner en principio, pero me confundi... :laugh: Lo que queria poner es esto:

Código (vb) [Seleccionar]

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Dim x As Integer
   If Button = vbRightButton Then x = x + 1
End Sub

Haber si me explico mejor:
Tengo un Timer con un intervalo de 500.
Si mantengo presionado el btn derecho del ratón en cualquier ventana se activa el Timer y cada 500 ms suma 1 a x, en el momento que deje de presionar el btn derecho del raton, se desactiva el Timer.


Creo que ahora me explique bastante bien, y como ya he dicho no tiene por que ser muy complejo de hacer, no?? :huh:

Muchas gracias a todos por la ayuda!! ;D
Título: Re: [ayuda] Pulsar mouse
Publicado por: Nanoc en 8 Mayo 2010, 02:16 AM
no, no es nada complicado, ya tienes la funcion para capturar el click del ratón, pues ponle el timer y listo
Título: Re: [ayuda] Pulsar mouse
Publicado por: Psyke1 en 8 Mayo 2010, 02:26 AM
Ya, le pongo el timer, pero, de esta manera, como sabe el Timer cuando tiene que parar?? :huh:
Código (vb) [Seleccionar]

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim x As Integer

Private Sub Timer1_Timer()

   If GetAsyncKeyState(1) = -32767 Then Timer1.Enabled = True

End Sub

Pongo esto porque no solo es al hacer click en el formulario, sino en cualquier ventana...
Deberia parar cuando deje de presionar el btn derecho, y mucho m temo que no se hacer eso y he estado buscnd... :-(

Gracias x la ayuda! :D
Título: Re: [ayuda] Pulsar mouse
Publicado por: Dessa en 8 Mayo 2010, 03:13 AM
Hola, Fijate si te sirve


FORM


Option Explicit

Private Sub Form_Load()
  Me.AutoRedraw = True
  StartHook
End Sub
Private Sub Form_Unload(Cancel As Integer)
  StopHook
End Sub




MODULO:


Option Explicit

Private Declare Function SetWindowsHookEx Lib "user32.dll" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As Long) As Long

Dim hHook As Long

Public Sub StartHook()
    hHook = SetWindowsHookEx(14, AddressOf MouseProc, App.hInstance, 0)
End Sub

Public Sub StopHook()
    Call UnhookWindowsHookEx(hHook)
End Sub

Private Function MouseProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long
    'On Error Resume Next
    If wParam = 516 Then
      Form1.Print "CLICK BOTON DERECHO"
    ElseIf wParam = 517 Then Form1.Print "SOLTÓ BOTON DERECHO"
    ElseIf wParam = 513 Then Form1.Print "CLICK BOTON IZQUIERDO"
    ElseIf wParam = 514 Then Form1.Print "SOLTÓ BOTON IZQUIERDO"
    ElseIf wParam = 519 Then Form1.Print "CLICK BOTON MEDIO"
    ElseIf wParam = 520 Then Form1.Print "SOLTÓ BOTON MEDIO"
    End If
   
    Form1.Caption = wParam
End Function



Título: Re: [ayuda] Pulsar mouse
Publicado por: Psyke1 en 8 Mayo 2010, 10:54 AM
Gracias Dessa!!!!!!!!!!!!!!!!!!!!!!
Funciona!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Salu2! ;D ;D
Título: Re: [Resuelto] Pulsar mouse
Publicado por: Nanoc en 13 Mayo 2010, 18:31 PM
Pues eso utiliza hooks como dije yo que era la forma profesional de hacerlo
Título: Re: [Resuelto] Pulsar mouse
Publicado por: Psyke1 en 13 Mayo 2010, 18:33 PM
Cita de: Nanoc en 13 Mayo 2010, 18:31 PM
Pues eso utiliza hooks de teclado como dije yo que era la forma profesional de hacerlo
AJJAJAJAJAJAJ :xD
Nanoc, esto ya esta resuelto desde hace casi una semana, y lo hice asi en el NRC que puedes ver en el foro!! :laugh:

Salu2! ;)