getestet unter Windows XP/2k
1. Der Aufbau von Ordnericons
Wenn du über Windows ein Ordnericon änderst, dann wird in diesem Verzeichnis eine Datei namens "desktop.ini" angelegt. Diese Datei ist wie folgt aufgebaut:
Delphi-Quellcode:
[.ShellClassInfo]
IconFile = %SystemDrive%\Pfad\zum\Icon.ico
IconIndex = 0
Der Rest ist jetzt ganz einfach:
2. Das Programmieren
Delphi-Quellcode:
uses
{...}, IniFiles, FileCtrl, {...}
function OrdnerIconAendern(Dir, Ico: String; IconIndex: Integer): Boolean;
var
desktopini: TIniFile
begin
if Dir[length(dir)] <> '\' then
Dir[length(dir) + 1] := '\';
try
if DirectoryExist(Dir) then
begin
desktopini := TIniFileCreate(Dir + 'desktop.ini');
try
desktopini.WriteString('.ShellClassInfo', 'IconFile', Ico);
desktopini.WriteInteger('.ShellClassInfo', 'IconIndex', IconIndex);
finally
desktopini.Free;
Result := true;
end;
end
else
begin
Application.MessageBox('Error: The Foldericon could not change!' + #13#10 + 'Directory doesn''t exist!', 'Error', 16 + 0); // Warnkreuz + OK-Button
Result := false;
exit;
end;
except
Application.MessageBox('Error: The Foldericon could not change!', 'Error', 16 + 0); // Warnkreuz + OK-Button
Result := false;
exit;
end;
end;
Der erste Parameter ist der Ordner, der geändert werden soll. Der zweite das Icon (also der Pfad inklusive Dateiname). Und zuletzt der dritte gibt den Iconindex an (Position des Icons (falls mehrere vorhanden sind)).
Der Rest sollte sich von selbst ergeben...