Cześć. Zmieniłem sobie ścieżkę typu C:\Program Files\plik.exe na ExtractShortPathName, no ale teraz mi potrzebna znowu normalna ścieżka, stąd moje pytanie bo Help nic podpowiedzieć nie chce - czy jest jakaś procedura, żeby wrócić z ExtractShortPathName do normalnej ścieżki ? Z góry dziękuję za wszelkie nakierowania :)
0
0
Moze to cos da:
ExtractFilePath(Application.ExeName);
ExtractFileName(Application.ExeName);
0
Nie nie, nie o to mi chodziło, ale na szczęście Pan Google pomógł :)
Dla potomnych:
uses
ShlObj, ComObj, ActiveX;
function ExtractLongPathName(const ShortFileName: String): String;
var
pDesktop: IShellFolder;
sFile: WideString;
iEaten: Cardinal;
pItemList: PItemIDList;
iAttributes: Cardinal;
szFile: array[0..MAX_PATH] of Char;
pMalloc: IMalloc;
begin
Result := '';
if Succeeded(SHGetDesktopFolder(pDesktop)) then begin
sFile := ShortFileName;
iAttributes := 0;
if Succeeded(pDesktop.ParseDisplayName(0, nil, POLESTR(sFile), iEaten,
pItemList, iAttributes)) then begin
SHGetPathFromIDList(pItemList, szFile);
Result := szFile; SHGetMalloc(pMalloc);
pMalloc.Free(pItemList); end; end;
end;