Hallo,
stundenlanges Googlen und suchen hier im Forum bringt mich nicht weiter. Ich möchte in einem fremden Programm z.B. Winamp das PopUp-Menue der Media Library disablen. Alles rummachen mit GetMenu, GetSystemMenu, EnableMenu u.s.w. hat keinen Erfolg. Es gelingt mir nicht einmal das Handle auszulesen. WinSpy zeig auch nichts an wenn ich mit der Maus darauf gehe. Ist das, was ich will überhaupt möglich? Ich werde wohl ein transparentes Fenster darüberlegen müssen.
Hat jemand eine Idee?
Gruß
Enigma
Menü in fremden Programmen disablen (Erledigt)
Menü in fremden Programmen disablen (Erledigt)
Zuletzt geändert von enigma am 20.11.2013 20:19, insgesamt 1-mal geändert.
Re: Menü in fremden Programmen disablen
Warum möchtest du denn das Popup-Menü deaktivieren? Was ist das Ziel deines Vorhabens?
Reicht es nicht aus, einfach nicht rechts zu klicken?
Reicht es nicht aus, einfach nicht rechts zu klicken?
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Menü in fremden Programmen disablen
Ein Popup-Menü wird erst erstellt, sobald man drauf klickt. Das ist bei Purebasic ja auch nicht anders. Das heißt du müsstest wie RSBasic richtig vorschlug eher den Rechtsklick verhindern anstatt das Menü zu deaktivieren.
Re: Menü in fremden Programmen disablen
Sorry, das war mein Fehler.
Es ist kein PopUp sondern ein PullDown-Menü.
Also bei Winamp in der Media Library gibt es drei Menüpunkte: File, View, Help. Klicke ich auf einen, öffnet sich ein Menü mit mehreren Auswahlmöglichkeiten zum Teil auch Untermenüs. Also eigentlich ganz normale Menüs. Und diese Menüs kann ich ums verrecken nicht ermitteln und disablen. Der Grund für mein Vorhaben ist, ich möchte verhindern das irgendwer, ohne mich zu fragen, Einstellungen verändert. Ich hoffe das ich mich einigermaßen verständlich ausgedrückt habe. Also: es geht mir darum die drei Menüs File, View und Help unbenutzbar zu machen.
Tut mir leid das ich euch in die falsche Richtung geschickt habe
Rechtsklick wird aus diesem Grunde auch verhindert werden. Aber eins nach dem Anderen, denn ich möchte bei dieser Aktion auch einiges über PureBasic lernen.
Gruß
Enigma

Also bei Winamp in der Media Library gibt es drei Menüpunkte: File, View, Help. Klicke ich auf einen, öffnet sich ein Menü mit mehreren Auswahlmöglichkeiten zum Teil auch Untermenüs. Also eigentlich ganz normale Menüs. Und diese Menüs kann ich ums verrecken nicht ermitteln und disablen. Der Grund für mein Vorhaben ist, ich möchte verhindern das irgendwer, ohne mich zu fragen, Einstellungen verändert. Ich hoffe das ich mich einigermaßen verständlich ausgedrückt habe. Also: es geht mir darum die drei Menüs File, View und Help unbenutzbar zu machen.
Tut mir leid das ich euch in die falsche Richtung geschickt habe

Rechtsklick wird aus diesem Grunde auch verhindert werden. Aber eins nach dem Anderen, denn ich möchte bei dieser Aktion auch einiges über PureBasic lernen.
Gruß
Enigma
Re: Menü in fremden Programmen disablen
Also unter "Pulldown" verstehe ich so was wie das ComboBoxGadget in PB.
Du meinst einfach ein ganz normales Menü^^
Und so sieht das ganze aus

Oder so, je nach Skin/Version: http://www.blogcdn.com/blog.winamp.com/ ... -image.jpg
Da Winamp, abgesehen von dem Optionenfenster komplett geskinnt ist, würde ich davon ausgehen, dass kein Menü im klassischen Sinne existiert, sondern dass es sich tatsächlich um ein Popup-Menü handelt, dass einfach an einer bestimmten Stelle (relativ zum Fenster, nicht an der Mausposition) erstellt wird.
Du scheinst ja auch kein Menü finden zu können.
Versuchs dochmal hiermit (ungetestet)
Du meinst einfach ein ganz normales Menü^^
Und so sieht das ganze aus

Oder so, je nach Skin/Version: http://www.blogcdn.com/blog.winamp.com/ ... -image.jpg
Da Winamp, abgesehen von dem Optionenfenster komplett geskinnt ist, würde ich davon ausgehen, dass kein Menü im klassischen Sinne existiert, sondern dass es sich tatsächlich um ein Popup-Menü handelt, dass einfach an einer bestimmten Stelle (relativ zum Fenster, nicht an der Mausposition) erstellt wird.
Du scheinst ja auch kein Menü finden zu können.
Versuchs dochmal hiermit (ungetestet)
Code: Alles auswählen
;hWnd = Windowhandle von Winamp
hMenu = GetMenu_(hWnd)
count = GetMenuItemCount_(hMenu)
For i = 0 To count
RemoveMenu_(hMenu, 0, #MF_BYPOSITION | #MF_REMOVE)
Next
;force a redraw
DrawMenuBar_(hWnd);
Signatur und so
Re: Menü in fremden Programmen disablen
Danke, genau das meine ich!
Ich werde deinen Code nachher mal testen.
Gruß
Enigma
Leider kein Erfolg. Werde wohl das unsichtbare Fenster nehmen.
Ich werde deinen Code nachher mal testen.
Gruß
Enigma
Leider kein Erfolg. Werde wohl das unsichtbare Fenster nehmen.
Re: Menü in fremden Programmen disablen
Versuchs mal hiermit.
Das muss allerdings in einem Timer laufen. Was besseres hab ich nicht gefunden.
Quelle: http://social.msdn.microsoft.com/Forums ... pplication
Der Code funkioniert aber nur bedingt. Im Grunde bekomme ich erst einen Output, wenn das Popupmenü wieder geschlossen wird. Und das Kontextmenü im Firefox findet er gar nicht.
Ansonsten würd ich versuchen mit ResourceHacker (http://www.angusj.com/resourcehacker/) einfach alle Menüeinträge in der Winamp.exe zu löschen. Dann musst du halt eine Backupversion haben, wenn du Einstellungen verändern willst.
Das muss allerdings in einem Timer laufen. Was besseres hab ich nicht gefunden.
Quelle: http://social.msdn.microsoft.com/Forums ... pplication
Der Code funkioniert aber nur bedingt. Im Grunde bekomme ich erst einen Output, wenn das Popupmenü wieder geschlossen wird. Und das Kontextmenü im Firefox findet er gar nicht.
Code: Alles auswählen
Repeat
Delay(5)
hPopupWnd = FindWindow_("#32768", 0)
Until hPopupWnd <> 0 Or GetAsyncKeyState_(27)
Debug hPopupWnd
;ShowWindow_(hPopupWnd,0)
Signatur und so
Re: Menü in fremden Programmen disablen
Hallo,
@Derren
der Code macht nicht was ich will aber dein Hinweis auf die Skins hat mich auf die richtige Spur gebracht. Es sind keine "richtigen" Menüs. Ich kann in den Skins die die Anzeige einfach ausschalten.
Gruß
Enigma
@Derren
der Code macht nicht was ich will aber dein Hinweis auf die Skins hat mich auf die richtige Spur gebracht. Es sind keine "richtigen" Menüs. Ich kann in den Skins die die Anzeige einfach ausschalten.



Gruß
Enigma