AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Icon - Symbol von Dateityp ermitteln (Speicherort)
Thema durchsuchen
Ansicht
Themen-Optionen

Icon - Symbol von Dateityp ermitteln (Speicherort)

Offene Frage von "-Lucky-"
Ein Thema von -Lucky- · begonnen am 12. Mai 2008 · letzter Beitrag vom 14. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
-Lucky-

Registriert seit: 4. Mai 2008
28 Beiträge
 
Delphi 7 Enterprise
 
#1

Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 14:12
Ich möchte in TListView das Symbol der entsprechenden Datei angezeigt haben. Damit das geht, muss ich wissen, wo ich das Icon (Symbol) auf der Festplatte finde. Wenn ich z.B. eine *.txt Datei habe, dann möchte ich das Symbol für die Textdatei laden. Dies soll für alle Dateitypen möglich sein. Ich habe schon versucht den Speicherort über die Registry heraus zu bekommen, das funktioniert aber nicht, hab alles durchsucht, nix gefunden

Dann bin ich auf die Idee gekommen Im Arbeitsplat bei Ordneroptionen -> Dateitypen zu gucken. Dort fand ich z.B. bei TXT Dateien heraus, dass das Symbol hier gespeichert ist: C:\WINDOWS\system32\shell32.dll Aber das wusste ich auch schon vorher.

Wenn man über Ordneroptionen das entsprechende Icon abfragen kann, dann muss man das doch auch irgendwie mit Delphi können. In meiner TListView soll halt das entsprechende Icon angezeigt werden.


Weiß das jemand zufällig, wie man das raus bekommt?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 14:16
Da gibt es eine API-Funktion für. Ich vergesse nur immer welche, weil ich sie nie brauche. Aber du bist nicht der erst, der das machen will.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 14:27
ich habe mal vor einiger zeit den dialog für dateieigenschaften von win nachprogrammiert, da brauchte ich das auch, und ja ich habs geschafft über die registry, du musst nur immer den verlauf nachverfolgen!! bsp txt datei..

1. .txt im pfad "HKEY_CLASSES_ROOT\.txt" den wert standart auslesen, das ist (im normal fall wenn nichts geändert worden ist) "txtfile"

2. diesen wert wieder nachverfolgen im pfad "HKEY_CLASSES_ROOT\txtfile"

3.unter dem pfad ""HKEY_CLASSES_ROOT\txtfile\defaulticon"

dort ist der pfad zum icon vom arbeitsplatz/explorer gespeichert
diesen musst du dann zerlegen und thats it

anmerkung:
bei vista währe es für die txtdateien:

"%SystemRoot%\system32\imageres.dll,-102"

befindet sich also in der dll imagesres an platz 102....

so hab ich es gemacht und das ging...



bei exe dateien kannst natürlich auch den pfad auslesen und dann per apitool das icon auslesen...
danach einfach mal googeln oder hier suchen
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 15:06
Das ist aber nicht der von MS offizielle Weg.

Ich habs: MSDN-Library durchsuchenExtractAssociatedIconEx. Aber ich meine da wäre noch eine gewesen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#5

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 16:12
Ich dachte, dass man das mit MSDN-Library durchsuchenSHGetFileInfo macht!?!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 17:20
@littleDave: Es gibt oft nicht nur einen einzigen Weg.

Ich mache es jedoch auch immer mit ShGetFileInfo:

Delphi-Quellcode:
Icon: TIcon;
FileInfo: SHFileInfo;

// ...

SHGetFileInfo(PChar(ExtractFileExt('Pfad zur Datei')), FILE_ATTRIBUTE_NORMAL, FileInfo,
  SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or
  SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
Icon.Handle := FileInfo.hIcon;

// ImageList ist ListView.SmallIcons zugewiesen
ListItem.ImageIndex := ImageList.AddIcon(Icon);

// ...
Das ist nur aufs Kürzeste zusammengefasst. Speicher freigeben etc. nicht vergessen.

Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#7

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 12. Mai 2008, 17:35
@Matze: ich war nur so erstaunt, weil ich diese Funktion nicht kannte . Aber man lernt ja nie aus
  Mit Zitat antworten Zitat
-Lucky-

Registriert seit: 4. Mai 2008
28 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 13. Mai 2008, 12:57
Das funzt nicht wirklich...

Icon.Handle := FileInfo.hIcon; Genau in dieser Zeile steigt mein Programm aus! Wenn ich nur diese Zeile auskommentiere, dann läuft es wenigstens, auch wenn nichts passiert.

Zitat:
Im Projekt ***.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004288F7 in Modul '***.exe'. Schreiben von Adresse C35B0005'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fotsetzen.
Bitte um Hilfe^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 13. Mai 2008, 12:59
Aber Icon ist instanziiert?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Icon - Symbol von Dateityp ermitteln (Speicherort)

  Alt 13. Mai 2008, 20:51
Zitat von Matze:
@littleDave: Es gibt oft nicht nur einen einzigen Weg.
viele wege führen nach rom

naja und die 3 lösungsvorschläge werden ja wohl reichen, einer wird bestimmt gehem^^
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:38 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