![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
¿seria mucho pedir un ejemplo?
Lo busco en google y sólo encuentro solución para visual basic |
|
#2
|
||||
|
||||
|
Aquí tienes un ejemplo de un Hook al Mouse. Sustituye la función MouseHookCallBack por esta:
Código:
LRESULT CALLBACK
MouseHookCallBack(int Code, WPARAM wParam, LPARAM lParam)
{
if(Code>=0){
if(wParam == WM_RBUTTONDOWN){
// Desactiva el botón derecho del mouse
return -1;
}
}
return CallNextHookEx(WHookMouse, Code, wParam, lParam);
}
Última edición por escafandra fecha: 14-10-2008 a las 07:06:29. |
|
#3
|
|||
|
|||
|
El codigo esta para C me parece.
Lo estoy pasando a delphi pero no me aclaro mucho. Lo seguiré intentando. |
|
#4
|
|||
|
|||
|
tengo que hacer una DLL para desactivar el boton derecho del raton??
He visto http://www.eksperten.dk/spm/840406 pero no tengo ni idea de como crear la DLL en delphi y ademas ni tan siquiera estoy seguro que se pueda hacer de una forma mas sencilla. Última edición por petete2008 fecha: 15-10-2008 a las 21:06:48. |
|
#5
|
|||
|
|||
|
Por si le interesa a alguno en esta pagina
http://www.ajpdsoft.com/modules.php?...rticle&sid=261 explica con detalle el tema de crear una dll Voy a crear la dll y a ver si consigo anular el boton derecho del mouse. Gracias |
|
#6
|
|||
|
|||
|
He seguido paso a paso lo que indica la web siguiente para detectar el boton derecho del mouse.
http://www.eksperten.dk/spm/840406 Lo he ejecutado en delphi y cuando pulso el boton derecho hace un beep tal y como indica el codigo de programa if Msg = WM_RBUTTONDOWN then MessageBeep(1); Ahora bien, lo que deseo no es un beep sino que no muestre el desplegable de las opciones del menú cuando se presione boton derecho del mouse. He intentado poner result:=-1; e incluso result:=-1; exit; y tambien comentando la linea Result := CallNextHookEx(HookHandle, Code, Msg, MouseHook); y no me resulta. Se me queda el PC colgado y el reloj del mouse dando vueltas indefinidamente. El trozo de código que debería modificar seria : begin { If the value of Code is less than 0, we are not allowed to do anything except pass it on to the next hook procedure immediately. } if Code >= 0 then begin { This example does nothing except beep when the right mouse button is pressed. } if Msg = WM_RBUTTONDOWN then MessageBeep(1); { If you handled the situation, and don't want Windows to process the message, do *NOT* execute the next line. Be very sure this is what want, though. If you don't pass on stuff like WM_MOUSEMOVE, you will NOT like the results you get. } Result := CallNextHookEx(HookHandle, Code, Msg, MouseHook); end else Result := CallNextHookEx(HookHandle, Code, Msg, MouseHook); end; Alguien sabe que debo hacer ![]() Graciass |
|
#7
|
|||
|
|||
|
he intentado hacerlo simulando un click de raton para que desapareciera el menú que sale cuando pulsamos boton iderecho pero no funciona ya que me hace constantes clicks automaticos y se me termina bloqueando.
if Code >= 0 then begin { This example does nothing except beep when the right mouse button is pressed. } if Msg = WM_RBUTTONDOWN then MessageBeep(1); // simular pulsar boton izquierdo mouse mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); { If you handled the situation, and don't want Windows to process the message, do *NOT* execute the next line. Be very sure this is what want, though. If you don't pass on stuff like WM_MOUSEMOVE, you will NOT like the results you get. } Result := CallNextHookEx(HookHandle, Code, Msg, MouseHook); end else Result := CallNextHookEx(HookHandle, Code, Msg, MouseHook); |
|
#8
|
||||
|
||||
|
No es necesario para el Hook tipo WH_MOUSE_LL.
El código lo puse en C. La filosofía del Hook es que retorne inmediatamente devolviendo -1 y por tanto sin dar paso al CallNextHookEx(HookHandle, Code, Msg, MouseHook); De esta forma el menú contextual o cualquier otra acción relacionada con ese botón, no aparecerá nunca. No hace falta colocar messagebox alguno. Saludos. |
|
#9
|
|||
|
|||
|
Pues colocandolo tal cual cuando das boton derecho hacía el pitido beep y a continuación mostraba el menú contextual sobre el raton que aparece sempre cuando se pulsa boton derecho.
No obstante con el messagebox me sirve. Gracias |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|