Lo que quizo decir
cHackAll es que tienes que tener en la carpeta a personalizar un archivo llamado "Desktop.ini" con los atributos de Oculto (H) y Archivo de Sistema (S) , el cual se comporta como un archivo de registro, y debes acceder a él a través del componente TIniFile, guardando en los valores "IconFile" e "IconIndex" los datos referidos al ícono. Vaya el ejemplo: suponiendo que la carpeta es "Archivos de Programa" y el ícono es "C:\MiIcono.ico" sería:
Código Delphi
[-]
uses ..., IniFiles;
procedure TForm1.Button1Click(Sender: TObject);
var archivo:TIniFile;
begin
archivo:=TIniFile.Create('C:\Archivos de Programa\Desktop.ini');
archivo.WriteString('.ShellClassInfo','IconFile','C:\MiIcono.ico');
archivo.WriteInteger('.ShellClassInfo','IconIndex',0);
archivo.Free;
end;
El "0" de "IconIndex" se refiere al número del ícono dentro del archivo, en este caso se utiliza el primer ícono del archivo "MiIcono.ico", pero puedes referirte a un ejecutable como "mplayer.exe" y obtener el 3er ícono de ese archivo poniendo "3" en "IconIndex".
Puede que el cambio de ícono no sea visible hasta que reinicies Windows porque éste usa una caché para mantener los íconos. También podría verse el cambio forzando a refrescar la caché de íconos, pero ese ya es otro tema.
Espero te quede claro.