Avatar billede tjacob Juniormester
14. marts 2003 - 11:55 Der er 1 løsning

Finde associeret program ud fra extension:

Jeg vil gerne kunne finde det associerede program (.exe -evt. dll) ud fra en extension (f.eks .txt) alene.


Jeg kender til API'en FindExecutable, og den fungerer sådan set fint.

Men den kræver en eksisterende fil (med Path) for at kunne finde det associerede program.

Jeg har lavet en workaround, der først opretter en dummy-fil: test.[ext]
og derefter finder associeret program til den, for så at slette filen
igen.

Men der må da være en mere direkte metode? en API?


/tjacob
Avatar billede tjacob Juniormester
16. marts 2003 - 15:32 #1
Jeg fandt selv løsningen efter et par dages arbejde:

API'en SHGetFileInfo klarer problemet:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfileinfo.asp

Klip fra siden:

If the uFlags parameter includes the SHGFI_USEFILEATTRIBUTES flag, this parameter does not have to be a valid file name. The function will proceed as if the file exists with the specified name and with the file attributes passed in the dwFileAttributes parameter. This allows you to obtain information about a file type by passing just the extension for pszPath and passing FILE_ATTRIBUTE_NORMAL in dwFileAttributes.

This string can use either short (the 8.3 form) or long file names.

/tjacob
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