Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Object-Pascal / Delphi-Language (https://www.delphipraxis.net/35-library-object-pascal-delphi-language/)
-   -   Delphi Ordnericons ändern (https://www.delphipraxis.net/601-ordnericons-aendern.html)

CalganX 12. Aug 2002 15:29


Ordnericons ändern
 
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...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz