Genau das wollt ich auch gerade schreiben :D Mit reinen .net-mitteln wird es nicht gehen was auch PInvoke bestätigt: http://www.pinvoke.net/default.aspx/user32/GetSystemMenu.html
Das ist aber meiner Meinung nach nicht das was ER will! Mit dieser Methode ändert man ja das SystemMenü der eigenen Anwendung. Er schreibt aber "Kontextmenü in der Taskleiste" als das Kontextmenü des Explorers!
Richtig .. denn es gibt keine Unterscheidung zwischen dem "Kontextmenü der Taskleiste" und dem "Contextmenü der Titelleiste". Es wird in beiden Fällen, meines wissen nach, die selbe "Windows Message" ausgelößt. Und zwar die WM_SYSCOMMAND = 0x112. Es soll auch noch eine undokumentierte Windows Message geben die den Code 0x313 trägt die sich NUR auf die Taskbar beziehen soll, jedoch konnte ich dazu nicht viel finde.
Falls du das Kontext Menü lediglich nur ganz abschalten willst, so kannst du das über die Registry tun. (siehe www.winfaq.de)
Edit: Hab gerade bemerkt, dass ich von einem anderen KontextMenü ausgegangen bin ;( Ich meinte das KontextMenü der Taskbar, dort wo auch der "Task Manager" aufgerufen werden kann. Der User meinte wahrscheinlich, das KontextMenu des Icons seines Programms in der Taskbar.
Es geht. Definitiv! Ich weiß das es zum Beispiel der HTML-HelpViewer (der *.chm Hilfedateien anzeigt) im Contextmenü der Tastlaste 2 zusätzliche Punkte einbindet ("Zu URL springen" und "Info zur HTML-Hilfe...").
Kann Floyd da nur recht geben. Es funktioniert auf jeden Fall. Normalerweise sind solche Einstellungen in der Registery eingetragen. Entweder gibt es einen speziellen Eintrag zum jeweiligen Programm, oder für den Explorer gibt es einen Eintrag, bei welchem Programm welche zusätzlichen Optionen angezeigt werden sollen. Bin mir da aber nicht mehr ganz sicher... Morgen kommt ein Arbeitskollege rein, der hat sowas ähnliches schonmal gemacht, vielleicht hat er eine Antwort. Oder gfoidl ist mal wieder schneller :D
Jungs, natürlich geht es mit Windows Board Mitteln bestimmt irgendwie, aber halt nicht so wie er es sich vorstellt! Wenn man den Explorer-Process anzapft geht das auf jeden Fall.
In der Registry kann man globale Einträge hinzufügen die für alle Kontextmenüs in der Taskbar oder z.B. auf Datei- oder Ordner-Ebene beziehen, jedoch nicht für einzelne Anwendungen oder Prozesse.
Mit reinen .net-mitteln wird es nicht gehen was auch PInvoke bestätigt: http://www.pinvoke.net/default.aspx/user32/GetSystemMenu.html