AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Index eines Ordnersymbols aus System32 ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Index eines Ordnersymbols aus System32 ermitteln

Ein Thema von Tod787 · begonnen am 18. Mai 2010 · letzter Beitrag vom 20. Mai 2010
Antwort Antwort
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#1

Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 11:57
Gibt es eine Funktion mit der ich bei einem Ordner den Symbolindex der system32.dll ermitteln kann?

also sowas wie GetSystem32Index(Filename: String): Integer
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 12:03
Wozu brauchst du das? Wenn du zum Beispiel nur das Icon anzeigen lassen willst brauchst du den Index nicht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#3

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 12:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 12:52
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
http://www.delphipraxis.net/internal...072212#1072212

und hier noch ein paar wichtige Infos für dich
http://www.michael-puff.de/Artikel/C...gFolders.shtml
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 13:15
Zitat von Tod787:
Gibt es eine Funktion mit der ich bei einem Ordner den Symbolindex der system32.dll ermitteln kann?
Achtung, die Symbole in den Ressourcendateien können sich von Windows Version zu Windows Version unterscheiden. Das heißt unter verschiedenen Windows Versionen muss der gleiche Index nicht das gleiche Symbol referenzieren!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 13:21
Zitat von Luckie:
Achtung, die Symbole in den Ressourcendateien können sich von Windows Version zu Windows Version unterscheiden.
stimmt soweit, aber
Zitat von Tod787:
Ich erstelle in meinem Programm zur Startzeit eine Imageliste mit allen Icons aus der system32.dll.
Wichtiger wäre da:
Achtung, nicht alle verwendeten Icons müssen aus der system32.dll stammen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 13:35
Das war auch nur als zusätzlicher Hinweis gedacht. Nicht dass da irgendwas hardcodiert wird oder so.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#8

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 15:47
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 18. Mai 2010, 16:05
Du mußt dann im Prinzip nur die desktop.ini erstellen, bzw die beiden Werte (Name und Index) ändern
Delphi-Quellcode:
[.ShellClassInfo]
IconFile=user.ico
IconIndex=0
(geht ja ganz leicht, über TIniFile)

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.
$2B or not $2B
  Mit Zitat antworten Zitat
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#10

Re: Index eines Ordnersymbols aus System32 ermitteln

  Alt 20. Mai 2010, 17:11
Klappt alles wunderbar! Danke für die Unterstützung!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 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