Autor
|
Tema: [Resuelto] Pulsar mouse (Leído 5,455 veces)
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
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: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) MsgBox "hola" End sub
Gracias!!
|
|
« Última modificación: 8 Mayo 2010, 10:54 am por *PsYkE1* »
|
En línea
|
|
|
|
xmbeat92
Desconectado
Mensajes: 40
|
SubClasifica el objeto en el que quieres que lo detecte o tambien puedes hacer un hook al Mouse
|
|
|
En línea
|
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Utilizo esto: 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!
|
|
« Última modificación: 4 Mayo 2010, 14:58 pm por *PsYkE1* »
|
En línea
|
|
|
|
|
Nanoc
Desconectado
Mensajes: 166
|
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
|
|
|
En línea
|
|
|
|
xkiz ™
|
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then MsgBox "hola" End Sub
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
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... Lo que queria poner es esto: 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?? Muchas gracias a todos por la ayuda!!
|
|
« Última modificación: 7 Mayo 2010, 15:24 pm por *PsYkE1* »
|
En línea
|
|
|
|
Nanoc
Desconectado
Mensajes: 166
|
no, no es nada complicado, ya tienes la funcion para capturar el click del ratón, pues ponle el timer y listo
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Ya, le pongo el timer, pero, de esta manera, como sabe el Timer cuando tiene que parar?? 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!
|
|
« Última modificación: 8 Mayo 2010, 02:51 am por *PsYkE1* »
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
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
|
|
|
En línea
|
Adrian Desanti
|
|
|
|
|