Nadat je de bestandinfo uit het register hebt gehaald moet je nogmaals in het register zoeken. Bijvoorbeeld de .jpg extensie:
hkey_classes_root\.jpg -> standaard = jpegfile
Zoeken in Nederlandse Windows XP bij
hkey_classes_root\jpegfile -> Jpeg-afbeelding
Zoeken in Engelstalige Windows XP bij
hkey_classes_root\jpegfile -> JPEG Image
En zo kom je dus bij je beschrijving...
Op mijn Windows
Vista:
- hkey_classes_root\.jpg -> standaard = PhotoShop.JPEGfile (Ik heb geen Photoshop meer???)
hkey_classes_root\PhotoShop.JPEGfile -> standaard = [niets; lege sleutel]
Wat staat er in verkenner: 'JPEG-afbeelding'.
Dit is ook zo bij PNG
Waarschijnlijk was het dus een 'toevalstreffer' dat ik juist die 'foute' gebruikte om de code te testen, maar er blijkt dus toch nog ergens een andere methode te zijn waardoor Verkenner het wel met beschrijving kan tonen.
- hkey_classes_root\.jpeg -> standaard = jpegfile
hkey_classes_root\jpegfile -> standaard = JPEG Image
Wat staat er nog meer?: FriendlyTypeName = "@%SystemRoot%\System32\shell32.dll,-30596"
Zoeken in Shell32.dll: in het ingesloten textbestandje 'Shell32_str.txt' onder nummer 30596: 'JPEG-afbeelding'
Bij alle andere Standaard-Windows extensies werkt dit (zoals .exe)
Deze komen dus overeen
- Bij een niet-windows-extensie als .XLS (Excel werkblad)
hkey_classes_root\.xls-> standaard = Excel.Sheet.8
hkey_classes_root\Excel.Sheet.8 -> standaard = Microsoft Excel-werkblad
Zo werkt het bij alle andere niet-windows-eigen extensies wel
De vraag wordt dus nu:
- Hoe laat ik hem wel de juiste extensie opzoeken die bij jpg of png hoort (oftewel: bij elke extensie die standaard = "" heeft
- Hoe laat ik hem het txt bestandje dat IN de dll zit uitlezen bij nummer X
- [De derde kan ik wel zelf]
Wel alvast bedankt voor je hulp bij de vorige stap
(De controlevolgorde zal dus moeten worden:
1: Als 'FriendlyTypeName' bestaat dan dll uitlezen (2e voorbeeld hierboven)
- Als 1 mislukt naar 2 anders klaar
2: Als standaard een waarde heeft (3e voorbeeld hierboven) dan die waarde gebruiken
- 2 kan volgens mij niet mislukken dus altijd klaar
3: Als er bij standaard geen waarde staat dan op de een of andere manier toch die extensiebeschrijving boven water halen (1e voorbeeld hierboven)
- Als 3 mislukt naar 4 anders klaar
4: Extensie.ToString + "-bestand" (laatste redmiddel)
- Deze kan volgens mij niet mislukken
5. Als het bestand geen extensie heeft dan "Bestand")
Edit: Ik heb eventjes een projectje aangemaakt waarin jullie kunnen zien wat ik op dit moment heb... (het is echt alleen m.b.t. dit topic, er zit niets anders bij). Al mijn 'probleemlocaties' worden aangegeven door vijf apostroffen ( ' ) ervoor en erna. Het bestand:
Bekijk bijlage Beschrijving van een extensie.zip