Avatar billede michaelras Nybegynder
22. juli 1999 - 22:17 Der er 1 kommentar og
1 løsning

Associated icons

Hvordan kan jeg få fat i ShellIconCache-indexet til et specifikt filtype? (Altså dens nummer i listen)

På godt dansk: Jeg har en fil med endelsen fx: .xyz hvordan får jeg fat i dens ikon i ShellIconCache? Jeg er godt klar over hvordan man får fat i handlen til ShellIconCache:
ImageList.Handle := ShGetFileInfo('*.*', 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_LARGEICON or SHGFI_ICON or SHGFI_SYSICONINDEX);

men når jeg skal have fat i indexet til et specifikt ikon?
SHGetFileInfo kan (skal?) bruges til det, men den kræver at filen eksisterer (eller hvad?), hvilket i mit tilfælde den ikke gør, og det er for langsommeligt at skulle til at oprette/omdøbe en (temp)fil hele tiden for at få fat i ikon-indexet.

Er der ikke en smartere måde? Jeg har prøvet at give '*.xyz' som parameter men det virker kun ved nogle få filtyper (hvorfor???) så det kan ikke rigtig bruges...

Michae
Avatar billede blackthorne Nybegynder
06. august 1999 - 12:53 #1
benyt denne på filer
    SHGetFileInfo(pChar(AFileName),
                  FILE_ATTRIBUTE_NORMAL,
                  AShInfo,
                  SizeOf(AShInfo),
                  SHGFI_TYPENAME or
                  SHGFI_SYSICONINDEX or
                  SHGFI_USEFILEATTRIBUTES or
                  SHGFI_SMALLICON);

eller denne på biblioteker
    SHGetFileInfo(pChar('c:\*.'),
                  FILE_ATTRIBUTE_NORMAL or
                  FILE_ATTRIBUTE_DIRECTORY,
                  AShInfo,
                  SizeOf(AShInfo),
                  SHGFI_TYPENAME or
                  SHGFI_SYSICONINDEX or
                  SHGFI_USEFILEATTRIBUTES or
                  SHGFI_SMALLICON);

filiconenindex'et ligger herefter i AShInfo.iIcon
Avatar billede michaelras Nybegynder
06. august 1999 - 23:05 #2
Havde egentlig fundet ud af det... men du skal da have dine point alligevel...

Michael
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester