![]() |
Über Hook rechte Maustaste sperren
Hallo Zusammen,
ich hab einen Mousehook, welcher mir an mein Programm die Mousehooks schickt. Jetzt möchte ich aber das klicken der rechten Maustaste verbieten... also sperren. Was mucc ich da in meinem Mousehook änder? Yves |
Re: Über Hook rechte Maustaste sperren
wenn du damit windows funktionen platt machen willst dann mach das lieber über gruppenrichtlinien in windows.
den (datei-)explorer bekommst du damit klein. gruss |
Re: Über Hook rechte Maustaste sperren
Hi,
ich möchte die Maustaste eigentlich nur deaktivieren in Verbindung mit der Strg Taste. Also wird Strg + Rechtemaustaste gedrückt... Message an mein Programm. Problem dabei: Es wird dabei auf einem Textfeld immer das Popupmenü geöffnet, das möchte ich in diesem Fall nicht. Ansonsten darf die Maustaste machen was sie will. Yves |
Re: Über Hook rechte Maustaste sperren
schlampiger weise könntest du mit GetKeyState gucken ob Strg gedrückt ist und wenn ja im MouseHook die Hookchain unterbrechen...
Greetz Boombuler |
Re: Über Hook rechte Maustaste sperren
Hi,
Delphi-Quellcode:
Das habe ich Probiert, geht aber nicht. Was ist HookChain?? Und wie kann ich das unterbrechen?
if wParam = WM_RBUTTONDOWN then
begin wParam := WM_NULL; lParam := 0; end; Result := CallNextHookEx(HookHandle, nCode, wParam, lParam); Danke, Yves |
Re: Über Hook rechte Maustaste sperren
Delphi-Quellcode:
Dadurch das du "CallNextHookEx" wegläst unterbrichst du die Hookchain!
if wParam <> WM_RBUTTONDOWN then
begin Result := CallNextHookEx(HookHandle, nCode, wParam, lParam); end; habs jetzt nich groß probier aber so wie oben hassu mehr change musst dann nur noch nach Strg gedrückt prüfen Greetz Boombuler PS: wie schreibst du n Hook wennu nicht weißt was die Hookchain is? |
Re: Über Hook rechte Maustaste sperren
HI,
das mit der Hookchain, ist mir shcon klar, wusste nur nicht dass die so heißt! Hab folgendes probiert:
Delphi-Quellcode:
Das mit dem Strg ist mir dann klar, aber leider funktioniert der Code nicht, weil immer noch die Funktion der rechten Maustaste funktioniert!
if (TPMsg(lParam)^.message = WM_RBUTTONDOWN) or (TPMsg(lParam)^.message = WM_RBUTTONUP) then
begin SendMessage(MMFData.WinHandle, WM_USER + 2706, wParam, lParam); Kill := True; end; if not Kill then // TPMsg(lParam)^.message := WM_NULL; Result := CallNextHookEx(MMFData.NextHook, Code, wParam, lParam) Sitz schon zwei Tage dran und weis einfach nicht weiter. Was für einen HookTyp muss ich denn verwenden, probiers gerade mit WH_GETMESSAGE, aber mit WH_MOUSE geht es auch nicht! Yves |
Re: Über Hook rechte Maustaste sperren
Zitat:
Code:
Return Value
If nCode is less than zero, the hook procedure must return the value returned by CallNextHookEx. If nCode is greater than or equal to zero, and the hook procedure did not process the message, [color=red]it is highly recommended that you call CallNextHookEx and return the value it returns; otherwise, other applications that have installed WH_MOUSE hooks will not receive hook notifications and may behave incorrectly as a result.[/color] [color=green]If the hook procedure processed the message, it may return a nonzero value to prevent the system from passing the message to the target window procedure.[/color] |
Re: Über Hook rechte Maustaste sperren
Wie kann ich dann dennoch den Klick verhindern? Ohne das mitd em CallNectHookEx, wegzulassen was ohne hin auch nicht geht. Vielleicht liegt es ja auch dan dem WH_MOUSE??
|
Re: Über Hook rechte Maustaste sperren
:bounce1: :bounce1: Es geht!!
Ich Erstelle den Hook so: also mit WH_GETMESSAGE:
Delphi-Quellcode:
Und ich prüfe die Kombination von Strg und der rechten Maustaste so:
SetWindowsHookEx(WH_GETMESSAGE, MsgFilterFunc, HInstance, 0);
Delphi-Quellcode:
Ich ändere ja den Parameter, macht das was, gegenüber den anderen Programmen die diesen Hook verwenden?
if (TPMsg (lParam)^.message = WM_RBUTTONUP) then
begin if GetASYNCKeyState (VK_CONTROL) <> 0 then TPMsg (lParam)^.message := WM_NULL; end; Result := CallNextHookEx(MMFData.NextHook, Code, wParam, lParam); Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz