Registrering af applikation i Windows-registreringsdatabasen

Indlæg af Hanne Mølgaard Plasc

Problem



Windows har en vag og utvetydig måde at erklære standarder for registrering af applikationer i Windows-registreringsdatabasen.


Efter den officielle dokumentation for ansøgningsregistrering anbefaler Microsoft at registrere apps under [16].


HKEY\_CURRENT\_USERSoftwareMicrosoftWindowsCurrentVersionApp PathsMyApp.exe


Denne anbefaling synes imidlertid ikke at blive fulgt af udviklere, da denne nøgle ikke engang er blevet oprettet på mit system endnu, mens andre applikationer er registreret i


HKEY\_CURRENT\_USERSoftwareClassesMyApp


og


HKEY\_CURRENT\_USERSoftwareClassesApplicationsMyApp.exe


Hver af nøglerne ovenfor har en anden struktur og dermed forskellige muligheder (dvs. nøglen SupportedTypes er tilgængelig i en, men ikke den anden). Hvad er forskellen mellem registrering af apps under disse forskellige nøgler, og i hvilke scenarier ville du vælge en over en anden?

Bedste reference


Ja, der er flere steder i registreringsdatabasen, hvor du kan lægge ansøgningsoplysninger, og hvilken nøgle der skal bruges, afhænger af hvad/hvorfor du registrerer.


Jeg vil hævde, at hovedregistreringspunktet er registreringen for 'Standardprogrammer' under SOFTWARERegisteredApplications. Hvis din ansøgning passer til en af ​​klienttyperne, skal du pege på din RegisteredApplications-værdi til SoftwareClients\%ClientType\%\%YourCanonicalName\%Capabilities, ellers kan du bruge en hvilken som helst nøgle som Software\%YourCompany\%\%YourApp\%Capabilities eller SoftwareClassesApplications\%Filename\%Capabilities. [17] [18]


Hvis du vil have din applikation vist i dialogboksen 'Åbn med' i en bestemt filtypenavn, kan du liste din ProgId under HKCR\%.ext\%OpenWithProgids eller applikationsfilen under HKCR\%.ext\%OpenWithList. [19] [20]


Generelt 'Åbn med' information er gemt under HKCRApplications\%Filename\%. [21]


Tasten SoftwareMicrosoftWindowsCurrentVersionApp Paths bruges hovedsagelig som en\% Path\% miljøvariabel udvidelse til skallen, så den kan finde den fulde sti til din eksekverbare, hvis brugeren kun skriver filnavnet i dialogboksen Kør. Det kan også indeholde nogle oplysninger om, hvordan din ansøgning håndterer 'træk &slip' og URL-protokoller. [22]


Der er også nogle applikationsoplysninger under HKCRAppID, men dette gælder ikke, medmindre du har en COM-server.





Hvad angår dit specifikke spørgsmål, er HKEY\_CURRENT\_USERSoftwareMicrosoftWindowsCurrentVersionApp PathsMyApp.exe og HKEY\_CURRENT\_USERSoftwareClassesApplicationsMyApp.exe dokumenterede registreringsnøgler, jeg allerede har dækket. Nøglen Supported Types er dokumenteret her. [23]


HKEY\_CURRENT\_USERSoftwareClassesMyApp ligner et ProgId, og de bruges generelt til at registrere filtyper og URL-protokollhåndteringsprogrammer. [24] [25]