Dela via


Filtyper

Det här avsnittet beskriver hur du skapar nya filtyper och hur du associerar din app med din filtyp och andra väldefinierade filtyper. Filer med ett gemensamt filnamnstillägg (.doc, .htmloch så vidare) har samma typ. Om du till exempel skapar en ny textredigerare kan du använda den befintliga .txt filtypen. I andra fall kan du behöva skapa en ny filtyp.

Det här avsnittet är ordnat på följande sätt:

Mer information finns i följande avsnitt:

Offentliga och privata filtyper

Offentliga filtyper kallas även populära eller omtvistade typer eftersom konkurrerande program kanske vill associeras med dessa filtyper. Egenskaper för offentliga filtyper är:

  • De definieras vanligtvis av standardorgan och/eller främjas av deras definierande organisationer som utbytesformat.
  • De utbyts ofta mellan datorer och användare i olika syften.
  • De måste stödjas på många olika plattformar.
  • Program från flera leverantörer kommer sannolikt att hantera dem.

Några exempel på filtyper som anses vara offentliga är avbildningsfiltyperna .png, .gif, .jpgoch .bmpoch ljudtyperna .wav, .mp3och .au.

Till skillnad från offentliga filtyper har privata eller egna filtyper vanligtvis ett format som bara implementeras och förstås av ett program eller en leverantör. Därför är privata filtyper vanligtvis inte utsatta för konflikter mellan program. Vissa filtyper kan börja som privata filtyper men senare bli offentliga filtyper.

Not

Windows skiljer inte mellan offentliga och privata filtyper. Skillnaden är endast relevant för att fatta beslut om ditt val av filtypsregistrering.

 

Registrera en filtyp

Om du vill associera filtypen med ett befintligt program letar du upp programmet ProgID i registret. Om du vill associera filtypen med ett nytt program definierar du ett ProgID för ditt program. Information om hur du definierar ett nytt ProgID finns i Programmatic Identifiers.

Filnamnstilläggets undernycklar har följande allmänna formulär: filnamnstillägget=ProgID. Filnamnstilläggets undernycklar lagras i underträdet HKEY_CLASSES_ROOT.

Det är viktigt att inkludera den inledande perioden (.) när du skapar filtypsundernycklar i registret. Om du till exempel vill att en filtyp med det korta tillägget .myp och den långa filnamnstillägget .myp-file ska öppnas med ett program som heter MyProgram använder du följande syntax:

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

Som du ser i föregående exempel bör du även skapa en undernyckel för det långa tillägget (.myp-fil) om du även registrerar ett kort filnamnstillägg (.myp). Mer information finns i filtypshanterare.

Ange valfria undernycklar och filtypstilläggsattribut

Filtypstilläggsposter i registret har flera valfria undernycklar och attribut.

De filtypstilläggsposter som används av filassociationer beskrivs i följande tabell. Alla värden är av den REG_SZ typen.

Registerpost Handling
Standard Ange standardvärdet för tilläggets undernyckel till det ProgID som det är länkat till.
Innehållstyp Ange värdet för Innehållstyp till filtypens MIME-innehållstyp.
OpenWithList Använd inte. Den här undernyckeln innehåller en eller flera programundernycklar för program som visas i Öppna med dialogrutepost för filtypen och är endast avsedd för .exe program på operativsystem före Windows XP. Använd OpenWithProgIds i stället.
OpenWithProgIds Den här undernyckeln innehåller en lista över alternativa prog-ID:er för den här filtypen. Programmen för dessa ProgID:er visas i menyn Öppna med och är tillgängliga som standard för Windows Store-appar för filtypen. När ett program tar över den här filtypen genom att ändra standardvärdet bör det också lägga till en post i den här listan.
PerceivedType Ange värdet PerceivedType till den PerceivedType som filen tillhör, om någon. Den här strängen används inte av Windows-versioner före Windows Vista. Mer information finns i Upplevda typer och programregistrering.

 

Den allmänna formen av en filnamnstilläggsundernyckel är följande. Alla posttyper är av REG_SZ typ.

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

Viktiga saker att tänka på när det gäller filtyper är:

  • Underträdet HKEY_CLASSES_ROOT är en vy som skapas genom sammanslagning av HKEY_CURRENT_USER\Software\-klasser och HKEY_LOCAL_MACHINE\Software\-klasser

  • I allmänhet är HKEY_CLASSES_ROOT avsedd att läsas från men inte skrivas till. Mer information finns i artikeln HKEY_CLASSES_ROOT.

  • Om du vill registrera en filtyp globalt på en viss dator skapar du en post för filtypen i undernyckeln HKEY_LOCAL_MACHINE\Software\Classes.

  • Om du bara vill göra en filtypsregistrering synlig för den aktuella användaren skapar du en post för filtypen i undernyckeln HKEY_CURRENT_USER\Software\Classes.

  • Ett program kan tillhandahålla en egen implementering av ett verb, till exempel öppna eller spela upp, som du ser i följande registerexempel.

    HKEY_CLASSES_ROOT
       Applications
          ApplicationName.exe
             shell
                verb
    

    Undernycklar för verbundernyckeln innehåller kommandoraden och metoden drop target: kommando och DropTarget.

  • När du skapar eller ändrar en filassociation är det viktigt att meddela systemet att du har gjort en ändring. Gör det genom att anropa SHChangeNotify och ange händelsen SHCNE_ASSOCCHANGED. Om du inte anropar SHChangeNotifykanske ändringen inte identifieras förrän systemet har startats om.

  • Om du vill hämta registerinformation om en filassociation använder du gränssnittet IQueryAssociations. Ett scenario som illustrerar den här proceduren finns i Exempelscenario för filassociation.

Not

Både App Paths och Applications registerundernycklar används för att registrera och kontrollera systemets beteende för program. Mer detaljerad information om den här funktionen finns i Application Registration.

 

Ta bort registerinformation under avinstallation

När du avinstallerar ett program bör prog-ID:erna och de flesta andra registerinformation som är associerade med programmet tas bort som en del av avinstallationen. Program som har ägarskap för en filtyp (genom att ange standardvärdet för filtypens HKEY_CLASSES_ROOT\.extension undernyckel till programmets ProgID) bör dock inte försöka ta bort det värdet vid avinstallation. Om du lämnar data på plats för standardvärdet undviker du svårigheten att avgöra om ett annat program har tagit över filtypen och skrivit över standardvärdet efter att det ursprungliga programmet installerades. Windows respekterar endast standardvärdet om ProgID upptäckte att det finns ett registrerat ProgID. Om ProgID är avregistrerat ignoreras det.

Observera att annan information om filtypsägarskap lagras i HKEY_CURRENT_USER underträd och även endast används när det program som det refererar till är registrerat. Därför behöver dessa data inte tas bort när du avinstallerar ett program.

Följande visar till exempel registrets tillstånd innan ett program avinstalleras:

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

Följande visar tillståndet för samma registerposter när programmet har avinstallerats.

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID subkey removed

Filtyper som stöder öppna metadata

I Windows 7 och senare stöder följande filtyper öppna metadata.

Filtyp Filnamnstillägg
Office 2007-dokument .docx, .xlsx, .pptx
Office 97-2003-dokument .doc, .xls, .ppt
Sparad sökning .search-ms
Windows Media-baserade format (ASF-container (Advanced Streaming Format) .wmv, .wma
MP4 (egenskapshanterare) .mp4, .m4a, .m4v, .mp4v, .m4p, .m4b, .3gp, .3gpp, .3gp2, .mov

 

Programregistrering

Hur filassociationer fungerar

innehållsvy efter filtyp eller typ

filtypshanterare

programmatiska identifierare

upplevda typer

associationsmatriser