C# Windows Explorer Kontextmenü öffnen und benutzen

kiname

Cadet 3rd Year
Registriert
Nov. 2014
Beiträge
56
Hallo,

Wie kann man in C# das normale Kontextmenü des Windows Explorers für Dateien oder Ordner öffnen?
Im Programm an sich habe ich die Mausposition wo ich es öffnen will und den absoluten pfad des Ordners bzw. der Datei.
Ist es überhaupt möglich das Kontextmenü in seiner vollen funktionalität zu benutzen oder muss ich es mir irgendwie selber zusammenbauen?

VG
kiname
 
Wo willst du den das Kontextmenü öffnen? In Windows selbst oder in deinem Programm?
Wenn innerhalb deines eigenen Programms:
Sowiet ich weiß, muss dir das Kontextmenü selbst zusammenbasteln.

Wenn an beliebiger Stelle in Windows:
Du hast die globale Mausposition (mit interop-zugriff auf die Win32-API)?
 
Der Windows Explorer ist nur eine graphische Darstellung des Windows Shell-Namespaces.
Die Shell ist für Programmierung direkt zugänglich und man muss da keine Mausklicks simulieren oder ähnlichen Quatsch machen.
Deine Idee ist auch prinzipiell nicht zuverlässig umsetzbar. Was, wenn eine Shell-Erweiterung installiert wird? Plötzlich trifft der Mauszeiger daneben und dein Programm funktioniert nicht mehr.

https://msdn.microsoft.com/de-de/library/windows/desktop/bb773177(v=vs.85).aspx
 
So wie ich das verstanden habe möchte er keine Mausklicks irgendwohin simulieren, sondern das bekannte Kontextmenü in seinem eigenen Programm einbauen. Er hat wohl ein GUI-Objekt, das eine Datei im Dateisystem darstellt. Er möchte bei einem Rechtsklick in seinem Programm auf dieses Objekt das Kontextmenü an der Mausposition aufrufen. Nun interessiert er sich dafür, ob er sich selber eins zusammenbasteln muss, oder das "vorgefertigte" inklusive Shellextensions verwenden kann.
 
Physikbuddha hat es genau auf den punkt gebracht. Ich habe eine Taskleiste in der man Programme hinzufügen kann die Symbole werden hier angezeigt und ich möchte per Rechtsklick auf eins der Symbole das Windows Explorer Kontextmenü öffnen.
 
Danke für die Klarstellung des Missverständnisses. Die Lösung für dein Problem ist trotzdem die Shell.
Genauso wie der Windows Explorer Shellobjekte in eine GUI einblendet, kannst du das mit deinem eigenen Programm auch machen. Die genauen Details dazu findest du in der Dokumentation, die ich gepostet habe.
Ich bin leider alles andere als ein Experte für die Programmierung so elementar auf Windows beschränkter Funktionalität, so dass ich dir keine fertige Antwort liefern kann. Deshalb kann ich nur auf die Dokumentation verweisen oder vielleicht findet sich jemand anders, der dir mehr Hilfe im Detail geben kann.
 
Zurück
Oben