Delen via


Bestandstypen

In dit onderwerp wordt uitgelegd hoe u nieuwe bestandstypen maakt en hoe u uw app koppelt aan uw bestandstype en andere goed gedefinieerde bestandstypen. Bestanden met een gedeelde algemene bestandsnaamextensie (.doc, .htmlenzovoort) zijn van hetzelfde type. Als u bijvoorbeeld een nieuwe teksteditor maakt, kunt u het bestaande .txt bestandstype gebruiken. In andere gevallen moet u mogelijk een nieuw bestandstype maken.

Dit onderwerp is als volgt ingedeeld:

Meer informatie vindt u in de volgende onderwerpen:

Openbare en persoonlijke bestandstypen

Openbare bestandstypen worden ook wel populaire of conflicterende typen genoemd, omdat concurrerende toepassingen mogelijk aan deze bestandstypen moeten worden gekoppeld. Kenmerken van openbare bestandstypen zijn:

  • Ze worden doorgaans gedefinieerd door standaarden en/of worden gepromoveerd door hun definiërende organisaties als uitwisselingsindelingen.
  • Ze worden vaak uitgewisseld tussen computers en gebruikers voor diverse doeleinden.
  • Ze moeten worden ondersteund op veel verschillende platforms.
  • Toepassingen van meerdere leveranciers verwerken ze waarschijnlijk.

Enkele voorbeelden van bestandstypen die als openbaar worden beschouwd, zijn de bestandstypen voor afbeeldingen .png, .gif, .jpgen .bmp, en de audiotypen .wav, .mp3en .au.

In tegenstelling tot openbare bestandstypen hebben privé- of bedrijfseigen bestandstypen doorgaans een indeling die wordt geïmplementeerd en begrepen door slechts één toepassing of leverancier. Als gevolg hiervan zijn privébestandstypen doorgaans niet gevoelig voor conflicten tussen toepassingen. Sommige bestandstypen kunnen beginnen als privébestandstypen, maar later openbare bestandstypen worden.

Notitie

Windows maakt geen onderscheid tussen openbare en persoonlijke bestandstypen. Het onderscheid is alleen relevant bij het nemen van beslissingen over uw keuze van registratie van bestandstypen.

 

Een bestandstype registreren

Als u het bestandstype wilt koppelen aan een bestaande toepassing, zoekt u de progID van de toepassing in het register. Als u het bestandstype wilt koppelen aan een nieuwe toepassing, definieert u een ProgID voor uw toepassing. Zie Programmatische id'svoor meer informatie over het definiëren van een nieuwe ProgID.

Subsleutels voor de bestandsnaamextensie hebben de volgende algemene vorm: extensie=ProgID. Subsleutels voor de bestandsnaamextensie worden opgeslagen in de HKEY_CLASSES_ROOT substructuur.

Het is belangrijk om de voorloopperiode (.) op te nemen bij het maken van subsleutels van het bestandstype in het register. Als u bijvoorbeeld een bestandstype met de korte extensie .myp en de lange extensie .myp-file wilt openen met een toepassing met de naam MyProgram, gebruikt u de volgende syntaxis:

HKEY_CLASSES_ROOT
   .myp
      (Default) = ApplicationVendor.MyProgram
   .myp-file
      (Default) = ApplicationVendor.MyProgram
   ApplicationVendor.MyProgram
      (Default) = MyProgram Application

Zoals in het vorige voorbeeld is gedemonstreerd, moet u ook een subsleutel maken voor de lange extensie (.myp-file) als u ook een korte bestandsnaamextensie (.myp-file) registreert. Zie handlers voor bestandstypenvoor meer informatie.

Optionele subsleutels en kenmerken van bestandstypen instellen

Vermeldingen van de bestandsextensie in het register hebben verschillende optionele subsleutels en kenmerken.

De bestandstype-extensievermeldingen die door bestandskoppelingen worden gebruikt, worden beschreven in de volgende tabel. Alle waarden zijn van het REG_SZ type.

Registervermelding Actie
Verstek Stel de standaardwaarde van de extensiesubsleutel in op de ProgID waaraan deze is gekoppeld.
Inhoudstype Stel de waarde van het inhoudstype in op het MIME-inhoudstype van het bestandstype.
OpenWithList Niet gebruiken. Deze subsleutel bevat een of meer toepassingssubsleutels voor toepassingen die worden weergegeven in de Openen met dialoogvenstervermelding voor het bestandstype en is alleen bedoeld voor .exe toepassingen op besturingssystemen vóór Windows XP. Gebruik in plaats daarvan OpenWithProgIds.
OpenWithProgIds Deze subsleutel bevat een lijst met alternatieve progID's voor dit bestandstype. De programma's voor deze ProgID's worden weergegeven in het Openen met menu en zijn beschikbaar als standaard Windows Store-apps voor het bestandstype. Wanneer een toepassing dit bestandstype overneemt door de standaardwaarde te wijzigen, moet er ook een vermelding aan deze lijst worden toegevoegd.
PerceivedType Stel de waarde PerceivedType in op het PerceivedType waartoe het bestand behoort, indien van toepassing. Deze tekenreeks wordt niet gebruikt door Windows-versies vóór Windows Vista. Zie Waargenomen typen en toepassingsregistratievoor meer informatie.

 

De algemene vorm van een subsleutel voor de bestandsnaamextensie is als volgt. Alle invoertypen zijn van het REG_SZ type.

HKEY_CLASSES_ROOT
   .ext
      (Default) = ProgID.ext.1
      Content Type = MIME content type
      PerceivedType = PerceivedType
      OpenWithProgids
         ProgID2.ext.1
         ProgID3.ext.1
      ProgID.ext.1
         shellnew

Belangrijke overwegingen over bestandstypen zijn:

  • De HKEY_CLASSES_ROOT substructuur is een weergave die wordt gevormd door HKEY_CURRENT_USER\Software\Klassen en HKEY_LOCAL_MACHINE\Software\Klassen

  • Over het algemeen is HKEY_CLASSES_ROOT bedoeld om te worden gelezen van maar niet naar geschreven. Zie het artikel HKEY_CLASSES_ROOT voor meer informatie.

  • Als u een bestandstype globaal wilt registreren op een bepaalde computer, maakt u een vermelding voor het bestandstype in de subsleutel HKEY_LOCAL_MACHINE\Software\Classes.

  • Als u een registratie van een bestandstype alleen zichtbaar wilt maken voor de huidige gebruiker, maakt u een vermelding voor het bestandstype in de subsleutel HKEY_CURRENT_USER\Software\Classes.

  • Een toepassing kan een eigen implementatie van een werkwoord bieden, zoals openen of afspelen, zoals wordt weergegeven in het volgende registervoorbeeld.

    HKEY_CLASSES_ROOT
       Applications
          ApplicationName.exe
             shell
                verb
    

    Subsleutels van de subsleutel werkwoord bevatten de opdrachtregel en de doelmethode voor neerzetten: opdracht en DropTarget-.

  • Wanneer u een bestandskoppeling maakt of wijzigt, is het belangrijk dat u het systeem informeert dat u een wijziging hebt aangebracht. Doe dit door SHChangeNotify- aan te roepen en de SHCNE_ASSOCCHANGED gebeurtenis op te geven. Als u SHChangeNotify-niet aanroept, wordt de wijziging mogelijk pas herkend nadat het systeem opnieuw is opgestart.

  • Als u registerinformatie met betrekking tot een bestandskoppeling wilt ophalen, gebruikt u de IQueryAssociations interface. Zie voorbeeldscenario voor bestandskoppelingenvoor een scenario dat deze procedure illustreert.

Notitie

Zowel de -apppaden als toepassingen registersubsleutels worden gebruikt om het gedrag van het systeem namens toepassingen te registreren en te beheren. Zie Application Registrationvoor meer informatie over deze functionaliteit.

 

Registergegevens verwijderen tijdens verwijdering

Wanneer u een toepassing verwijdert, moeten de ProgID's en de meeste andere registergegevens die aan die toepassing zijn gekoppeld, worden verwijderd als onderdeel van de verwijdering. Toepassingen die eigenaar zijn van een bestandstype (door de standaardwaarde van de HKEY_CLASSES_ROOT\extensie van het bestandstype in te stellen subsleutel voor de ProgID van de toepassing) moeten deze waarde niet verwijderen bij het verwijderen. Als u de gegevens voor de standaardwaarde laat staan, voorkomt u dat het moeilijk is om te bepalen of een andere toepassing eigenaar is geworden van het bestandstype en de standaardwaarde heeft overschreven nadat de oorspronkelijke toepassing is geïnstalleerd. Windows respecteert de standaardwaarde alleen als de ProgID heeft gevonden dat er een geregistreerde ProgID is. Als de ProgID niet is geregistreerd, wordt deze genegeerd.

Houd er rekening mee dat andere eigendomsgegevens van bestandstypen worden opgeslagen in de substructuur HKEY_CURRENT_USER en ook alleen worden gebruikt wanneer de toepassing waarnaar wordt verwezen, is geregistreerd. Daarom hoeven deze gegevens niet te worden verwijderd bij het verwijderen van een toepassing.

Hieronder ziet u bijvoorbeeld de status van het register voordat een toepassing wordt verwijderd:

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID
      shell
         open
            command
               (Default) = yourapp.exe %1

Hieronder ziet u de status van dezelfde registervermeldingen nadat de toepassing is verwijderd.

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID subkey removed

Bestandstypen die ondersteuning bieden voor open metagegevens

In Windows 7 en hoger ondersteunen de volgende bestandstypen open metagegevens.

Bestandstype Bestandsnaamextensies
Office 2007-documenten .docx, .xlsx, .pptx
Office 97-2003-documenten .doc, .xls, .ppt
Opgeslagen zoekopdracht .search-ms
Windows Media-indelingen (ASF-container (Advanced Streaming Format) .wmv, .wma
MP4 (eigenschapshandler) .mp4, .m4a, .m4v, .mp4v, .m4p, .m4b, .3gp, .3gpp, .3gp2, .mov

 

toepassingsregistratie

hoe bestandskoppelingen werken

inhoudsweergave per bestandstype of type

bestandstype

bestandstypehandlers

programmatische id's

waargenomen typen

koppelingsmatrices