Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Kontextmenüs sperren? WIE? (https://www.delphipraxis.net/901-kontextmenues-sperren-wie.html)

thomasdrewermann 22. Sep 2002 17:41


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?

Daniel B 22. Sep 2002 18:13

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:

thomasdrewermann 22. Sep 2002 18:15

Nein, ich will Kontext-Menüs Global, also überall in Windows sperren.
Ach ja, und das unter Win98! :oops:

theomega 22. Sep 2002 18:31

Aber Achtung: Ein einfaches Abfangen der Rechtsklicks bringt nicht, weil man auch mit der Rechtklicktaste auf der Tastatur einen Rechtklick produzieren kann!

thomasdrewermann 22. Sep 2002 20:16

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:
showwindow(findwindow('PopupMenu',nil),SW_MINIMIZE);
Diesen Code hatte ein Timer alle 100ms aufgerufen.

Doch die Kontextmenüs blieben Sichtbar :((

Hat jemand vielleicht eine Idee warum?

MFG
Thomas :spin: :shock:

Daniel B 22. Sep 2002 20:21

Vielleicht gibts ein Refresh, â la F5.
Dann würde es "theoretisch" verschwinden.

Grüsse, Daniel :hi:

thomasdrewermann 22. Sep 2002 20:33

Wo gibs ein Refresh?
Ich kann ja nicht ständig F5 senden...

Christian Seehase 23. Sep 2002 00:45

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.

thomasdrewermann 23. Sep 2002 14:14

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

Christian Seehase 23. Sep 2002 15:14

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.
Seite 1 von 2  1 2      

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