![]() |
Index eines Ordnersymbols aus System32 ermitteln
Gibt es eine Funktion mit der ich bei einem Ordner den Symbolindex der system32.dll ermitteln kann?
also sowas wie GetSystem32Index(Filename: String): Integer |
Re: Index eines Ordnersymbols aus System32 ermitteln
Wozu brauchst du das? Wenn du zum Beispiel nur das Icon anzeigen lassen willst brauchst du den Index nicht.
|
Re: Index eines Ordnersymbols aus System32 ermitteln
Ich erstelle in meinem Programm zur Startzeit eine Imageliste mit allen Icons aus der system32.dll. In meiner Umgebung existieren Ordner mit geänderter Symboldarstelung. Ich möchte jetzt von jedem Ordner den Symbolindex auslesen, damit ich ihn im Programm verarbeiten kann.
|
Re: Index eines Ordnersymbols aus System32 ermitteln
Ließ die desktop.ini in dem betreffenden Ordner aus ... darin steht der Index und die Quelldatei des Icons.
Aber Achtung, der Explorer interpretiert diese Datei nur, wenn der Ordner mit dem Systemflag (Dateiattribut) versehen ist, also wäre es besser, wenn du dieses vorher abprüfst. - erst Attribut prüfen - dann schauen ob desktop.ini existiert - und wenn alles vorhanden ist, dann aus der INI die Werte auslesen. [add] Das Verzeichnis muß das System-Flag besitzen und die desktop.ini das System- Schreibschutzflag, aber oftmals reicht es, wenn du einfach nur das Flag des Ordners prüfst. hier einen Code, wo ich was Ähnliches auslese ![]() und hier noch ein paar wichtige Infos für dich ![]() |
Re: Index eines Ordnersymbols aus System32 ermitteln
Zitat:
|
Re: Index eines Ordnersymbols aus System32 ermitteln
Zitat:
Zitat:
Achtung, nicht alle verwendeten Icons müssen aus der system32.dll stammen. |
Re: Index eines Ordnersymbols aus System32 ermitteln
Das war auch nur als zusätzlicher Hinweis gedacht. Nicht dass da irgendwas hardcodiert wird oder so.
|
Re: Index eines Ordnersymbols aus System32 ermitteln
Super! Vielen Dank für den Hinweis zur Desktop.Ini! Die eine Richtung funktioniert schonmal sehr gut. Die Frage ist jetzt wie ich das Ganze in die andere Richtung realisiere. Also vom Programm aus einem Windowsordner ein Symbol zuweisen.
Halte ich mich an die Symbole aus der system32.dll müsste ich doch "nur" aus dem Programm heraus in der jeweiligen desktop.ini den Index ändern. Doch wie du schon befüchtet hast soll das Programmaber auch anbieten den Ordnern neue, eigene Icons als Symbol zuweisen zu können. Allerdings nur vom Programm zum System und nicht umgekehrt. Habe momentan eine Datenbank mit Blobfeldern die ich nachdem ich die Imagelist mit den Icons der system32.DLL fülle einfach noch oben drauf packe. Index 0-240 -> Icons aus der System32.DLL Index 241-x -> neue Icons |
Re: Index eines Ordnersymbols aus System32 ermitteln
Du mußt dann im Prinzip nur die desktop.ini erstellen, bzw die beiden Werte (Name und Index) ändern
Delphi-Quellcode:
(geht ja ganz leicht, über TIniFile)
[.ShellClassInfo]
IconFile=user.ico IconIndex=0 Und dann nicht vergessen, wenn die Datei von TIniFile neu erstellt wurde (FileExists fand sie vor dem Speichern nicht), die Attribute der Datei und des Ordners anpassen. |
Re: Index eines Ordnersymbols aus System32 ermitteln
Klappt alles wunderbar! Danke für die Unterstützung!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 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