Einzelnen Beitrag anzeigen

CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#13

AW: Explorer-Kontextmenüpunkt unsichtbar ausführen

  Alt 18. Aug 2015, 01:04
@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.
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat