Cita:
Empezado por jhonalone
...Me rindo. Creo que Microsoft nos toma el pelo con el API...
|
No, la razón de la "ineficiencia" de la API no es algo casual;
Cita:
Empezado por GetShortPathName
Remarks
When an application calls this function and specifies a path on a volume that does not support 8.3 aliases, the function fails with ERROR_INVALID_PARAMETER if the path is longer than 67 bytes.
|
Cita:
Empezado por jhonalone
Que alquien me lo explique. Yo desisto. A lo mejor tengo un error en el código y no me doy cuenta...
|
Es probable, para futuras ocaciones por favor... utiliza las etiquetas para enmarcar tu código. Así como lo dejaste nadie lo analizará.
Cita:
Empezado por jhonalone
De todas formas creo que el tema no interesa mucho (Solo 27 visitas en dos dias)
|
No es un tema que interese o no a los miembros; la poca concurrencia en un hilo puede deberse a la dificultad de la pregunta, a la repetición, a que es un tema demasiado común, a las faltas a la guia de estilos o por cualquier otra causa.
Al grano;
Código Delphi
[-]function GetShortName(FileName: string): string;
var
Actually: string;
FindData: TWin32FindData;
Pos, Count: Integer;
begin
Count := 3;
Result := Copy(FileName, 1, 2);
while Count < Length(FileName) do
begin
Inc(Count);
Pos := System.Pos('\', Copy(FileName, Count, MAX_PATH)) - 1;
if Pos <> -1 then Inc(Count, Pos) else Count := MAX_PATH;
Windows.FindClose(FindFirstFile(PChar(Copy(FileName, 1, Count - 1)), FindData));
Result := Result + '\' + FindData.cAlternateFileName;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetShortName('C:\Documents and Settings\Administrator\Start Menu\Internet Explorer.lnk'));
end;
Animos!