AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SHGetFileInfo und SHGFI_ICONLOCATION?

Ein Thema von demic · begonnen am 9. Mär 2011 · letzter Beitrag vom 14. Mär 2011
Antwort Antwort
demic
(Gast)

n/a Beiträge
 
#1

SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 9. Mär 2011, 21:06
Hallo,

ich benutze SHGetFileInfo um an die Symbole zu kommen. Das klappt ganz gut. Für Optimierungen meiner Anwendung benötige ich nun den Dateinamen und das Verzeichnis, in der das entsprechende Symbol abgespeichert ist. Ich habe mit SHGFI_ICONLOCATION ein wenig expermimentiert, jedoch klappt es nicht 100%. Hat sich damit schon mal jemand beschäftigt? Laut Internet haben auch andere damit Schwierigkeiten.

Gruß
Michael
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 9. Mär 2011, 21:28
Zeig doch mal die passende Codestelle
Lars
  Mit Zitat antworten Zitat
demic
(Gast)

n/a Beiträge
 
#3

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 9. Mär 2011, 21:57
Nun, ich kürze mal etwas ab.

SHGetFileInfo('C:\Windows'), 0, shInfo, SizeOf(shInfo), SHGFI_ICONLOCATION);
In shInfo.szDisplayName steht bei den obigen SHGetFIleInfo-Angaben der Wert "C:\Windows\System32\imageres.dll". In der shInfo.iInfo der Wert "-3".

SHGetFileInfo('C:\autoexec.bat'), 0, shInfo, SizeOf(shInfo), SHGFI_ICONLOCATION);
In shInfo.szDisplayName steht bei den obigen SHGetFIleInfo-Angaben kein Wert. In der shInfo.iInfo der Wert "7".

Ein Wert für "shInfo.szDisplayName" scheint nur bei Verzeichnissen zu funktionieren.

Wenn man jetzt von speziellen Symbolen für Verzeichnisse (z.B. "Dokumente und Einstellungen") absieht, benutzt (laut der Registry) Windows 7 die Datei "C:\Windows\System32\shell32.dll" (Index 3) für ein Ordner-Symbol und nicht wie "szDisplayName" meint, die Datei "C:\Windows\System32\imageres.dll".

Andere Angaben (z.b. "SHGFI_ICONLOCATION or SHGFI_USEFILEATTRIBUTES") gehen auch nicht. Ich hab viel ausprobiert.

Gruß
Michael
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#4

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 9. Mär 2011, 22:13
Was genau willst Du denn mit den Icos machen?

//edit:
Schon mal so probiert?
SHGetFileInfo('C:\AutoExec.bat', FILE_ATTRIBUTE_NORMAL, shInfo, SizeOf(shInfo), SHGFI_ICONLOCATION or SHGFI_TYPENAME or SHGFI_DISPLAYNAME);
Lars

Geändert von daywalker9 ( 9. Mär 2011 um 22:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 9. Mär 2011, 22:57
Hast du die Struktur auch initialisiert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
demic
(Gast)

n/a Beiträge
 
#6

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 10. Mär 2011, 19:12
daywalker9::
Ja, alles schon probiert.
Die Icon-Location sollte für eine Optimierung sein. Habe mein kleines Opti-Problem jetzt zum Glück mit der System Image Liste verbunden. Musste einiges umschreiben. Also das Hauptproblem ist beseitigt. Dennoch interessiert mich "SHGFI_ICONLOCATION". Ich könnte es für andere Zwecke (aber eher unwichtige) gebrauchen.

Luckie:: Was meinst du mit Struktur initialisieren? Meinst du "var shInfo : TSHFileInfo;" ? Das ist natürlich drin, da sonst natürlich überhaupt nichts geht.

Zu dem Icon-Thema habe ich noch eine andere Frage. SHGetFileInfo liefert (wenn gewünscht) spezielle Symbole für manche Ordner, für einzele ".exe", ".msc", ".lnk" und ".ico" Dateien. Bin gerade am überlegen, welche Dateiendungen noch berücksichtig werden. Die Bilder-Vorschau (auch als kleine Icons) im Explorer für ".jpg", ".bmp" etc. scheint wohl ein eigenes Feature zu sein. Kennt jemand noch andere Dateiendungen, die SHGetFileInfo berücksichtigt?

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 10. Mär 2011, 19:21
Also das ist mir klar, dass du die Variable auch deklariert hast. Aber hast du die Felder der Struktur auch alle erstmal mit null (ZeroMemory) initialisiert, damit da kein Schrott drin steht beim Aufruf der Funktion?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
demic
(Gast)

n/a Beiträge
 
#8

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 10. Mär 2011, 19:51
Habe Zero... gerade nicht drin aber das hatte ich auch schon probiert.
Ich schau aber noch mal.

Michael
  Mit Zitat antworten Zitat
demic
(Gast)

n/a Beiträge
 
#9

AW: SHGetFileInfo und SHGFI_ICONLOCATION?

  Alt 14. Mär 2011, 22:38
Das mit SHGFI_ICONLOCATION hab ich noch nicht ganz ausgetestet. Jedenfalls habe ich für meine andere SHGetFileInfo Routinen das "ZeroMemory" mal hinzugefügt. Danke für die Info. Das mit SHGFI_ICONLOCATION muss ich halt noch durchtesten.
  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 18:16 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