@einbeliebigername
Vielen Dank für die Hilfe! Ich habe die Funktionen dazu zwar auch schon gefunden, aber irgendwie habe ich es trotzdem nicht zum Laufen bekommen. Ich habe in der Zwischenzeit jedoch eine wesentlich einfachere Möglichkeit über die Jcl gefunden, die intern wohl einfach viel der Shell-Programmierung abnimmt:
Delphi-Quellcode:
ItemIdList := PathToPidlBind('Z:\', Folder);
if ItemIdList <> nil then
begin
InvokeContextMenuCommand(37, Folder, ItemIdList); //37 ist die ID vom benötigten Menüpunkt
PidlFree(ItemIdList);
end;
Damit wird die Funktion aus dem Kontextmenü korrekt aufgerufen.
Allerdings bin ich nun sehr ratlos, denn das Ergebnis ist etwas anders als wenn man es mit der Maus anklickt ... und zwar mit genau dem gleichen Problem wie per
API.
Ich habe mich deshalb entschlossen, doch das eigentliche Problem sauber aufzubereiten und als gesonderte Frage zu stellen.
Was für einen Menü-Eintrag - was für einen Aktion - soll denn ausgeführt werden? Meistens gibt es einen ganz anderen Weg dahin.
Und WAS macht der Eintrag, der ausgeführt werden soll?
Trommelwirbel ... ein Netzlaufwerk trennen.
Was? So einfach? Naja, nicht ganz. Aber seht selbst:
http://www.delphipraxis.net/186253-w...gesucht-*.html
Wenn mir jemand erklären kann, warum der Kontextmenüaufruf per Code ein anderes Resultat hat als per Maus oder einen konkreten Lösungsansatz für das eigentliche Problem hat, wäre ich sehr dankbar. Ich hänge da jetzt bereits seit etwa einer Woche dran und kann mich einfach nicht damit abfinden, dass es da keine Lösung dafür zu geben scheint.