Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Icon anhand der Extension ermitteln? (https://www.delphipraxis.net/54695-icon-anhand-der-extension-ermitteln.html)

Kedariodakon 10. Okt 2005 09:54


Icon anhand der Extension ermitteln?
 
Gibt es eine Möglichkeit die Icons von registrierten Extensions zu bekommen?
Mal angenommen ich habe nur den Namen: "Film.mpg"
Kann ich nun irgendwie das Icon rausbekommen und ev. auch das Programm mit welchem es gestartet werden müßte und mit welchen Parametern?

Wäre toll wenn jemand einen Ansatzpunkt kennt óò

Bye

MathiasSimmack 10. Okt 2005 10:17

Re: Icon anhand der Extension ermitteln?
 
Hier im Forum suchenSHGetFileInfo

Kedariodakon 10. Okt 2005 10:32

Re: Icon anhand der Extension ermitteln?
 
Naja nicht ganz, Problem: Ich habe die Datei ja nicht, nur den Namen...

Bye

MathiasSimmack 10. Okt 2005 10:59

Re: Icon anhand der Extension ermitteln?
 
Ist kein Problem. Guck dir mal die Parameter an. Bei einem kannst du Attribute angeben, so dass du bspw auch mit ".mp3" als Namen Erfolg hast :stupid:

Kedariodakon 10. Okt 2005 12:45

Re: Icon anhand der Extension ermitteln?
 
Ok scheind wohl doch zu gehen :???:

Werd es mal Testen :zwinker:

Frage wär aber noch, wie ich das Programm ermittle, mitwelchem die Dateien gestertet werden...


Bye

Rastaman 10. Okt 2005 13:08

Re: Icon anhand der Extension ermitteln?
 
Aus der Registry in HKEY_CLASSES_ROOT vielleicht :gruebel:

Kedariodakon 10. Okt 2005 16:05

Re: Icon anhand der Extension ermitteln?
 
Zitat:

Zitat von Gerrit89
Aus der Registry in HKEY_CLASSES_ROOT vielleicht :gruebel:

Hmm die ".*" Referenzieren wohl mit den Standardschlüselwert auf HKEY_CLASSES_ROOT\"Standardschlüselwert" und weiter dann auf HKEY_CLASSES_ROOT\"Standardschlüselwert"\DefaultIc on zum Icon + Index bzw. auf das Programm zum öffnen, neu erstellen und sowas...

Kann ich den davon ausgehen das alles was da mit nen "." Beginnt auch eine registrierte Extension ist?

Dann gibts auch welche welche so heißen: ".BMP;*.GIF;*.JPG;*.JPEG;*.PCX;*.TIF;*.TIFF;*. FPX"

Aber bei manchen ist ein PersistentHandler mit einer CLSID angegeben... Und die is bei sehr vielen gleich :gruebel:
Oh man das hört sich schon alles nach Interfaces an :roll:

Bye

Luckie 10. Okt 2005 16:12

Re: Icon anhand der Extension ermitteln?
 
Zitat:

Zitat von Kedariodakon
Frage wär aber noch, wie ich das Programm ermittle, mitwelchem die Dateien gestertet werden...

Auch dazu gibt es eine API Funktion. Mir fällt sie nur gerade nicht ein. :gruebel:

Kedariodakon 10. Okt 2005 16:39

Re: Icon anhand der Extension ermitteln?
 
Ok habe mir ein paar VB sachen angeschaut...
Die Registrierten Icons bekommen sie, indem sie "HKEY_CLASSES_ROOT" durchsuchen, das Icon mit der Api-Funktion MSDN-Library durchsuchenSHGetFileInfo und das Programm zum ausführen mit der Api-Funktion MSDN-Library durchsuchenFindExecutable...

Dabei werden zur Hilfe Dummy-Dateien erstellt...

Und wie editiert man die, außer über Windows?

Bye

MathiasSimmack 10. Okt 2005 16:53

Re: Icon anhand der Extension ermitteln?
 
Zitat:

Zitat von Kedariodakon
Dabei werden zur Hilfe Dummy-Dateien erstellt...

Zumindest für SHGetFileInfo brauchst du keine Dummydatei:
Delphi-Quellcode:
SHGetFileInfo('gibtsnicht.txt',
  FILE_ATTRIBUTE_NORMAL,
  fi, sizeof(fi),                 // fi = TSHFileInfo-Variable
  ... or SHGFI_USEFILEATTRIBUTES); // ... = die anderen Flags
Und für FindExecutable könntest du mit Hilfe von MSDN-Library durchsuchenGetTempPath eine leere Datei des gewünschten Typs im Temp-Ordner erstellen und dann später wieder entfernen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 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