Ver Mensaje Individual
  #5  
Antiguo 25-03-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Reputación: 20
cHackAll Va por buen camino
Cita:
Empezado por jhonalone Ver Mensaje
...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 Ver Mensaje
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 Ver Mensaje
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!
Responder Con Cita