[Delphi] Dynamic 'DefaultIcon' toekennen

Pagina: 1
Acties:

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:17
Is het mogelijk om aan een bestandsextensie een dynamisch icoon toe te kennen, die afhankelijk is van de inhoud van het bestand en gegeneerd wordt door een Delphi-app.

Bijv:
.ico (defaulticon = %1)
.bmp (standaard mspaint, dynamisch indien defaulticon = %1)

Waar moet mijn programma aan voldoen om zo'n icoontje te genereren?

Zoeken op Google naar 'DefaultIcon', Delphi en/of dynamic icon levert niets nuttigs op :(

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:27

Creepy

Tactical Espionage Splatterer

Wat wil je genereren? Het icoon? (ik snap je omschrijving niet goed.. )

Windows bepaalt zelf welk icoon er getoond moet worden a.d.v. de extensie. Dit word mooi bijgehouden in de registry. Bij een exe bestand kan je de programmeur zelf bepalen wat voor icoon er getoond moet worden, aangezien hiervoor in de resources van de betreffende exe word gekeken.

[ Voor 12% gewijzigd door Creepy op 14-04-2003 16:09 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • BM
  • Registratie: September 2001
  • Laatst online: 09:25

BM

Admin Softe Goederen
Hmmz, over het algemeen lijkt bovenstaand verhaal wel te kloppen, maar 1 ding snap ik dan niet. Adobe Photoshop slaat bestanden op (als je wilt ;)) als *.psd. Die bestanden hebben afhankelijk van de inhoud een icoontje. Een soort van mini-mini-preview. Enig idee hoe dat dan zou kunnen?

Xbox
Even the dark has a silver lining


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:27

Creepy

Tactical Espionage Splatterer

SpeedAddict schreef op 14 april 2003 @ 16:17:
Hmmz, over het algemeen lijkt bovenstaand verhaal wel te kloppen, maar 1 ding snap ik dan niet. Adobe Photoshop slaat bestanden op (als je wilt ;)) als *.psd. Die bestanden hebben afhankelijk van de inhoud een icoontje. Een soort van mini-mini-preview. Enig idee hoe dat dan zou kunnen?
Dan heb je waarschijnlijk iets wat die preview genereerd. Op mijn Windows 2000 systeem ZONDER Photoshop o.i.d. geinstalleerd te hebben krijg ik het standaard icoontje van windows te zien als een extensie niet bekend is.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:17
SpeedAddict schreef op 14 April 2003 @ 16:17:
Hmmz, over het algemeen lijkt bovenstaand verhaal wel te kloppen, maar 1 ding snap ik dan niet. Adobe Photoshop slaat bestanden op (als je wilt ;)) als *.psd. Die bestanden hebben afhankelijk van de inhoud een icoontje. Een soort van mini-mini-preview. Enig idee hoe dat dan zou kunnen?
Dit zoek ik dus ook. Als je bv. de DefaultIcon van .bmp veranderd in %1, zal je zien dat (na het herstarten van de explorer) alle bmp-icoontjes veranderen in de inhoud van het bestand. Voorbeeld:

[img=http://home.zonnet.nl/JeroenPetra/voorbeeldico.JPG]

Verwijderd

Dat is een windows-default viewer, windows kan zelf dit soort previews van bmp-tjes aanmaken, is een optie van de explorer.

Wil je echter zo'n preview maken voor je eigen bestandextentie, dan kan ik me voorstellen dat je er een viewer voor moet maken oid. Kijk eens hoe photoshop dat gedaan heeft in het register, zou ik zeggen. Mij lijkt dat je op MSDN of in de KB hierover ook wel zaken moet kunnen vinden.

Ik weet iig. niet een snelle manier om dit voor elkaar te krijgen..

  • martijn_brinkers
  • Registratie: November 2001
  • Laatst online: 31-10-2025
Je moet zoeken op shell extensions. Voor een commerciele delphi library zie oa

http://www.shellplus.com/shell-extensions-map.html

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:17
Via Photoshop & registry ben ik uitgekomen op een key met de naam ' IconHandler'. Zoeken op MSDN levert me de bijbehorende API-aanroep: IExtractIcon.

Zoeken op Google naar 'IExtractIcon' en 'Delphi' levert mij een hele reeks sites op, die allemaal nutteloos zijn. Tenslotte nog eens gezocht op RagingSearch, en die levert mij behalve alle pagina's die Google gaf, precies 1 nuttige pagina:
Vanaf de website:
Adăugarea de obiecte COM la extensiile Windows Explorer reprezintă un interesant pas în programarea COM. Dincolo de complexitatea structurilor Explorer, simplitatea conceptuală a interfeţelor şi uşurinţa implementării lor în Delphi fac COM-ul mai prietenos. Şi să nu uitam elementul inerent de spectaculos...
Mijn Roemeens is hopeloos, maar er zit een heel nuttig werkend voorbeeld bij die bij .jpg het icoontje vervangt door een miniatuur:

http://www.datalog.ro/delphires/explrjpg.zip

Deze ben ik nu aan het aanpassen.

[ Voor 5% gewijzigd door jvdmeer op 15-04-2003 09:24 ]

Pagina: 1