| 

.NET C# Java Javascript Exception

4
Hallo

wie kann ich mein C# Programm so erweitern, dass ich im Kontextmenü in der Taskleiste weitere Punkte im anbieten kann?

Danke
News:
14.10.2009
Arade 225 5
2 Antworten
6
Weiss zwar nicht wie's mit C# geht, aber mit unmanaged Win-APIs gehts so:

Mit GetSystemMenu() das bereits existierende Menu holen, dann mittels InsertMenu() oder AppendMenu() deine eigenen Einträge einfügen.

Wenn dein Menu-Eintrag angeklickt wird, kriegst du eine WM_SYSCOMMAND Meldung.

Edit:
grad noch zwei Beiträge gefunden:
für WPF
und
für WinForms
14.10.2009
Stefan 284 1 3
Stefan 284 1 3
1
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
Floyd 14.10.2009
1
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!
Blue 14.10.2009
2
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.
Floyd 14.10.2009
0
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.


MfG
14.10.2009
Blue 321 5
1
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...").
Floyd 14.10.2009
1
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
Dustin Klein 14.10.2009
1
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.
Blue 14.10.2009
1
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.
Floyd 14.10.2009
1
Ahjo, stimmt Floyd :) So war's!
Dustin Klein 15.10.2009

Stelle deine .net-Frage jetzt!