![]() |
Kontextmenüs sperren? WIE?
hi Leute,
schon wieder nerver ich mit einer weltbewegenden frage. Wie kann ich Kontext-Menüs (rechtsklickmenüs) abfangen oder sperren? |
Nur so ein Gedanke,
es gibt ja OnMouseDown. Da kannst du dann sagen Taste rechts, wenn gedrückt, dann Key := 0; Oder das ganze im OnKeyPress/Down des Form. Grüsse, Daniel :hi: |
Nein, ich will Kontext-Menüs Global, also überall in Windows sperren.
Ach ja, und das unter Win98! :oops: |
Aber Achtung: Ein einfaches Abfangen der Rechtsklicks bringt nicht, weil man auch mit der Rechtklicktaste auf der Tastatur einen Rechtklick produzieren kann!
|
Es wäre mir vielleicht schon geholfen, wenn ich wüsste welches Handle das gerade geöffnete Startmenü hat.
Dann kann man es einfach minimieren, oder schliessen. Ich hatte es mit Findwindow und showwindow probiert:
Code:
Diesen Code hatte ein Timer alle 100ms aufgerufen.
showwindow(findwindow('PopupMenu',nil),SW_MINIMIZE);
Doch die Kontextmenüs blieben Sichtbar :(( Hat jemand vielleicht eine Idee warum? MFG Thomas :spin: :shock: |
Vielleicht gibts ein Refresh, â la F5.
Dann würde es "theoretisch" verschwinden. Grüsse, Daniel :hi: |
Wo gibs ein Refresh?
Ich kann ja nicht ständig F5 senden... |
Moin Thomas,
ich denke mal, dass Deine Variante deshalb nicht funktioniert, weil Du nicht wissen kannst, wie der Klassenname eines Popupmenüs ist. Der kann sich von Programm zu Programm ändern. Abfangen liesse sich diese Anzeige wahrscheinlich durch einen Maus und Tastatur Hook, nur: Was machst Du bei Programmen, die ohne Kontextmenü nicht, kaum oder schlecht bedienbar werden. Solltest Du nur die Kontextmenüs bestimmter Programme unterdrücken wollen, wäre es interessant zu wissen, welche Programme dies betrifft. |
Die Kontext-Menüs der öffnen und speichern dialoge verschiedener Programme.
Das Kontext-Menü des IEXPLORERs. Ich habe es mir mit Winsight angeschaut: http://users.delphipraxis.net/thomas...mann/popup.JPG |
Moin Thomas,
in dem von Dir gezeigten Beispiel müsste der Klassenname #32768 lauten. Du müsstest also FindWindow(PChar('#32768'),nil) verwenden. Die meisten Dialoge (z.B. Fehlermeldungen) haben meist die Klasse #32770. Gerade beim IE kann man das Kontextmenü allerdings auch über Policies einschränken (ich muss mal den Key raussuchen). Was willst Du denn genau mit der Sperrung des Kontextmenüs unterbinden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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