Für mich sind deine Ausführungen leider verwirrend. Geht es um das Kontextmenü oder um den Eigenschaften-Dialog? In deinem Code kommen beide Dinge vor. Was genau willst du erreichen? Warum das Kontextmenü, wenn der Weg über ShellExecuteEx mit dem Verb properties laut deinem Code einwandfrei funktioniert?
Hast du mal versucht, den Backslash zu belassen?
Delphi-Quellcode:
S := LeftShellItem(LeftView.Selected.Index).FullPath;
if S[Length(S)] = '\' then
S := Copy(S, 1, Length(S) - 1);
kann man übrigens auch viel einfacher schreiben:
S := ExcludeTrailingPathDelimiter(LeftShellItem(LeftView.Selected.Index).FullPath);
Aber wie gesagt: ich würd's mal ohne Wegschneiden des Backslashs probieren bzw. mit dem Pfad in deiner Funktion ShellExec vergleichen.
Grüße
Dalai