![]() |
Foldericon anpassen
So, damit ich den Code nicht verliere, kommt der gleich mal in die CodeLibrary 8)
Ihr kennt bestimmt alle den Bilder-Ordner, Favoriten-Ordner und andere, welche sich im Explorer gesondert darstellen. Dieser Code zeigt lediglich, wie man das Icon ändern kann und einen Info-Tipp anzeigt. Es ist kein Beispiel für eine andere Dateiansicht, dazu wird die Datei folder.htt gebraucht, und das habe ich noch nicht getan. Im Verzeichnis, welches sich gesondert darstellen soll, muss ein Datei desktop.ini enthalten sein. Diese sollte die Attribute faHidden und faSysFile haben. Der Aufbau ist denkbar einfach.
Code:
Hier wird die Datei folder.ico fürs Icon genutzt. Da nur der Dateiname angegeben wurde, wird die Datei auch im entsprechenden Verzeichnis erwartet. Auch hier sollten die Attribute analog zu denen der desktop.ini gesetzt sein.
[.ShellClassInfo]
IconFile=folder.ico IconIndex=0 InfoTip=Mein schöner Folder. Damit der Windows-Explorer die desktop.ini auch lädt, muss dieses dem System mitgeteilt werden. Dazu gibt es die Funktion PathMakeSystemFolder, welche durch Delphi nicht bereitgestellt wird und daher separat importiert werden muss. Verfügbar ist die ab dem IE 4.0.
Delphi-Quellcode:
Windows bietet für diese Funktion keine Gegenfunktion :shock:, deshalb muss man das durch das korrigieren der Verzeichnisattribute von Hand erledigen.
function PathMakeSystemFolder(pszPath: LPSTR): BOOL; stdcall; external
'shlwapi.dll' name 'PathMakeSystemFolderA'; Die folgende Funktion ermöglicht es, diese erweiterte Darstellung an- und auszuschalten. Sie erwartet als ersten das Verzeichnis, dessen Attribute angepasst werden sollen und als zweiten Parameter True für die spezielle Ansincht, ansonsten False.
Delphi-Quellcode:
...:cat:...
procedure SetDesktopIni(Path: String; ShowSpecialSettings: Boolean);
var pPath: array[0..MAX_PATH] of Char; begin if AnsiLastChar(Path)^ = '\' then SetLength(Path, Pred(Length(Path))); StrPCopy(pPath, Path); if ShowSpecialSettings then begin PathMakeSystemFolder(pPath); end else begin SetFileAttributes(pPath, GetFileAttributes(pPath) and ( not (faSysFile or faReadOnly))); end; end; |
Weißt du auch, wie man eine HTML zuweist? Wäre interessant.
Als Antwort auf den Beitrag darunter: Danke ;) (Will ja hier keine Posts kassieren für Sinnloses) |
Daran forsche ich noch. Ich bin schon recht weit. Ich lasse es Dich wissen, sobald es funktioniert ;-)
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz