Moin,
und danke für die Hilfe.
das Problem ist, dass der OpenDialog mit dem lokalisierten Namen arbeitet, in den Einstellungen aber der physikalische Pfad steht. Wenn der Benutzer dann eine Datei öffnen will, landet er im Dokumenten-Ordner weil der OpenDialog den Pfad nicht findet.
Deine Funktion habe ich ausprobiert. Das funktionert, übersetzt aber nur den letzten Ordnernamen.
Ich habe es jetzt mal mit SHGetLocalizedName versucht. Das funktionirt aber nicht so wie ich es implementiert habe.
Delphi-Quellcode:
function GetLocalName(Path: string): string;
var
wpNew: PWideChar;
cch: UINT;
pidsRes: integer;
hr: HRESULT;
begin
wpNew := StrAlloc(MAX_PATH);
try
FillChar(wpNew^, MAX_PATH, 0);
cch := MAX_PATH;
hr := SHGetLocalizedName(PWideChar(Path), wpNew, cch, pidsRes);
if hr = 0 then
result := wpNew
else
result := 'error';
finally
StrDispose(wpNew);
end;
end;
Mache ich da was falsch?
Danke und
Gruß
Stefan Menten