Delen via


Standaardtoepassingen beheren

De functie Programmatoegang en Computerstandaarden instellen (SPAD) is toegevoegd aan Windows XP en latere versies van Windows om de standaardinstellingen per computer te beheren. Naast SPAD introduceerde Windows Vista het concept van standaardtoepassingen per gebruiker en het item Standaardprogramma's in het Configuratiescherm.

Belangrijk

Dit onderwerp is niet van toepassing op Windows 10. De manier waarop standaardbestandskoppelingen werken, is gewijzigd in Windows 10. Zie de sectie over Wijzigingen in de manier waarop Windows 10 standaard-apps verwerkt in dit berichtvoor meer informatie.

 

Standaardinstellingen per gebruiker zijn specifiek voor een afzonderlijk gebruikersaccount op het systeem. Als standaardinstellingen per gebruiker aanwezig zijn, hebben ze voorrang op de bijbehorende standaardinstellingen per computer voor dat account. Vanaf Windows 8 wordt het uitbreidbaarheidssysteem voor bestandstypen en protocolstandaarden strikt per gebruiker en standaardwaarden per computer genegeerd. SPAD is ook gewijzigd in Windows 8 om de standaardinstellingen per gebruiker te maken.

  • Op systemen met versies van Windows die ouder zijn dan Windows 8, ontvangt een zojuist gemaakt gebruikersaccount standaardwaarden per computer totdat de standaardinstellingen per gebruiker zijn ingesteld. In Windows Vista en hoger kunnen gebruikers het standaardprogramma's item in het Configuratiescherm gebruiken om hun standaardinstellingen per gebruiker in te stellen of te wijzigen. Wanneer een toepassing voor de eerste keer wordt uitgevoerd, kunnen standaardwaarden per gebruiker worden ingesteld met behulp van de richtlijnen die volgen in de sectie First Run en Defaults voor toepassing.
  • Op systemen met Windows 8 is een nieuw gebruikersaccount afhankelijk van de standaardinstellingen per gebruiker vanaf het begin en de instelling van deze standaardwaarden voor de eerste uitvoering, zoals wordt uitgelegd in de sectie Application First Run en Defaults wordt niet meer ondersteund.

Een applicatie moet zich registreren bij zowel SPAD als de functie Standaardprogramma's om aangeboden te worden als het standaardprogramma in Windows Vista en later.

Dit onderwerp bevat onafhankelijke softwareleveranciers (ISV's) met een beknopte handleiding over de stappen die nodig zijn voor het registreren en beheren van standaardinstellingen voor toepassingen in Windows Vista en hoger. Koppelingen vindt u in meer uitgebreide artikelen over het onderwerp van elke sectie.

Standaardprogramma-item in configuratiescherm

Standaardprogramma's is een functie die is geïntroduceerd in Windows Vista, rechtstreeks toegankelijk vanuit het menu Start en configuratiescherm. Het biedt een nieuwe infrastructuur die werkt met standaardgebruikersbevoegdheden (niet verhoogd) en is ontworpen om gebruikers en toepassingen in staat te stellen de standaardinstellingen per gebruiker te beheren. Voor gebruikers biedt Standaardprogramma's een uniforme en eenvoudig toegankelijke manier om standaardinstellingen, bestandskoppelingen en Instellingen voor automatisch afspelen te beheren in alle toepassingen op het systeem. Voor toepassingen biedt het gebruik van het bereik per gebruiker dat wordt geleverd door de API's voor standaardprogramma's de volgende voordelen:

  • Geen verhoging

    Een toepassing hoeft de bevoegdheden ervan niet te verhogen om standaardwaarden te claimen.

  • goed burgerschap

    Op een computer met meerdere gebruikers kan elke gebruiker verschillende standaardtoepassingen selecteren.

  • standaardbeheer

    Standaardprogramma-API's bieden een betrouwbaar en consistent mechanisme voor het zelf controleren van de standaardstatus en het vrijmaken van verloren instellingen zonder rechtstreeks naar het register te schrijven. Vanaf Windows 8 wordt echter niet aanbevolen dat toepassingen de standaardstatus opvragen omdat een toepassing de standaardinstellingen niet meer kan wijzigen. Deze wijzigingen kunnen alleen door de gebruiker worden aangebracht.

Als u uw toepassing in staat wilt stellen om de standaardinstellingen effectief te beheren, moet u uw toepassing registreren als een mogelijk standaardprogramma. Zie Default Programsvoor meer informatie over het registreren en gebruiken van de Standaardprogramma's-API's.

Standaardprogramma's bieden ook deze twee functies:

  • gebruikersinterface voor herbruikbare standaardinstellingen

    De gebruikersinterface van de standaardinstellingen van het programma (Uw standaardprogramma's instellen) en bestandskoppelingen (een bestandstype of protocol koppelen aan een programma) kunnen opnieuw worden gebruikt en aangeroepen vanuit een toepassing. Hierdoor kunnen toepassingen een standaardgebruikerservaring bieden voor het beheren van standaardinstellingen en kunnen ISV's geen aangepaste of gelijkwaardige gebruikersinterface ontwikkelen.

  • opname van URL- en marketinginformatie

    Als onderdeel van de Uw standaardprogramma's instellen pagina van het Standaardprogramma's item in het Configuratiescherm, kan een toepassing marketinginformatie en een koppeling naar de website van de leverancier verstrekken. Deze URL is afgeleid van het Authenticode-certificaat waarmee de toepassing is ondertekend. Dit voorkomt misbruik en onbevoegde vervanging van deze koppeling. Als een toepassing een Authenticode-certificaat heeft dat een ingesloten URL bevat, wordt die ingesloten URL weergegeven in de Windows-gebruikersinterface. ISV's moeten profiteren van deze functie om gebruikers naar hun website te leiden voor updates en andere downloads.

Standaardinstellingen voor programmatoegang en computer instellen

Programmatoegang en Computerstandaarden instellen (SPAD) stelt beheerders in staat om de standaardinstellingen voor de hele computer te beheren die worden overgenomen door alle nieuwe gebruikers van die computer. Vóór Windows 8 liet SPAD systeembeheerders ook toe om bestandskoppelingen te herstellen bij schade wanneer programma's uit het systeem zijn verwijderd. Echter, vanaf Windows 8 heeft SPAD alleen invloed op gebruikersspecifieke standaardinstellingen.

Zie voor meer informatie over het registreren van een toepassing in SPAD Werken met de standaardinstellingen voor programmatoegang en computergebruik (SPAD) en Programma's registreren met clienttypen. In de volgende secties worden specifieke wijzigingen en nieuwe aanbevelingen besproken.

Standaardinstellingen voor SPAD

Standaardinstellingen per gebruiker overschrijven standaardinstellingen per computer.

  • Voor Windows 8: De standaardinstellingen die in SPAD zijn ingesteld (die per computer zijn), worden niet door gebruikers gezien als de bijbehorende standaardinstellingen per gebruiker zijn ingesteld. Als een gebruiker geen standaardwaarde per gebruiker heeft ingesteld, gebruikt het systeem de bijbehorende computerstandaard. Nieuwe gebruikersaccounts op een computer nemen in eerste instantie de standaardinstellingen van de computer over. De eerste keer dat een gebruiker een toepassing uitvoert, moet de toepassing de gebruiker vragen om de standaardinstellingen per gebruiker toe te wijzen. Zie Toepassing Eerste Start en Standaardinstellingen.
  • Vanaf Windows 8: alle standaardinstellingen zijn per gebruiker en elke standaardinstelling per computer wordt genegeerd. Toepassingen kunnen geen standaardkeuzes meer instellen, zodat ze de gebruiker niet kunnen begeleiden bij het toewijzen van deze standaardinstellingen.

Wanneer een pre-Windows 8-toepassing als standaard instelt in SPAD, moeten deze richtlijnen worden gevolgd:

  • Toepassingen moeten alleen standaard waarden op computerniveau claimen via SPAD.
  • Toepassingen moeten niet claim standaardwaarden per gebruiker via beveiligd-WACHTWOORDVERIFICATIE.

Wanneer een Windows 8-toepassing Als Standaard Instellen implementeert in SPAD, moeten ze hun bestandstypen en protocollen registreren in Standaardprogramma's, met dezelfde toepassingsnaam die in SPAD wordt gebruikt. Hierdoor kan een wijziging in SPAD weerspiegeld worden als een wijziging in de bijbehorende inschrijving bij Standaardprogramma's voor de huidige gebruiker.

Toegang verbergen in SPAD

De optie om toegang te verbergen voor elke mogelijke standaardinstelling in SPAD is op twee manieren te benaderen.

  • Kies de niet-Microsoft- standaardcategorie, waardoor de toegang tot alle standaardinstellingen van Microsoft wordt verwijderd.
  • Kies de categorie Aangepaste en schakel het selectievakje Toegang tot dit programma inschakelen uit.

Voorheen verwijderde het uitvoeren van een van deze acties alle toegangspunten naar de juiste toepassingen op het systeem. Specifieke richtlijnen voor deze situatie zeggen dat snelkoppelingen en pictogrammen van de volgende locaties moeten worden verwijderd:

  • Bureaublad
  • Startmenu
  • Werkbalk Snel starten (alleen Windows Vista en oudere versies)
  • Systeemvak
  • Snelmenu's
  • Map taakbalk

Leveranciers worden aangemoedigd om deze richtlijnen te implementeren in de callbackfunctie voor Verberg Toegang van de applicatie.

nl-NL: Alternatieve methode voor het verbergen van toegang in SPAD

Voor sommige oudere toepassingen is een volledige implementatie van Hide Access mogelijk niet praktisch. Een alternatieve methode die hetzelfde effect bereikt, maar niet eenvoudig kan worden omgedraaid door de gebruiker, is het verwijderen van de toepassing. Hieronder ziet u voorbeeldgedrag en voorbeeldcode om dit te implementeren.

De aanbevolen gebruikerservaring voor dit alternatief is als volgt:

  • Wanneer de gebruiker het selectievakje Toegang tot dit programma inschakelen in SPAD uitschakelt, wordt de volgende gebruikersinterface weergegeven.

    dialoogvenster vista over het verbergen van toegang tot programma's

  • Wanneer de gebruiker op OKklikt, wordt het item Programma's en onderdelen in het Configuratiescherm weergegeven, zodat de gebruiker de toepassing kan verwijderen.

  • Windows XP-gebruikers moeten het volgende dialoogvenster zien.

    windows xp-dialoogvenster over het verbergen van toegang tot het programma

  • Wanneer de gebruiker van Windows XP op OKklikt, wordt het onderdeel Programma's toevoegen of verwijderen in het Configuratiescherm weergegeven, zodat de gebruiker de toepassing kan deïnstalleren.

De volgende code biedt een herbruikbare implementatie voor de functie Access verbergen, zoals eerder is beschreven. Het kan worden gebruikt op Windows XP, Windows Vista en Windows 7.

#include <windows.h>
#include <shlwapi.h>
#include <strsafe.h>

PCWSTR c_pszMessage1 = L"To hide access to this program, you need to uninstall it by ";
PCWSTR c_pszMessage2 = L"using\n%s in Control Panel.\n\nWould you like to start %s?";
PCWSTR c_pszApplicationName  = L"Sample App";

int _tmain(int argc, WCHAR* argv[])
{
    OSVERSIONINFO version;
    version.dwOSVersionInfoSize = sizeof(version);

    if (GetVersionEx(&version))
    {
        PCWSTR pszCPLName = NULL;

        if (version.dwMajorVersion >= 6)
        {
            // Windows Vista and later
            pszCPLName = L"Programs and Features";
        }
        else if (version.dwMajorVersion == 5 &&
                 version.dwMinorVersion == 1)
        {
            // XP
            pszCPLName = L"Add/Remove Programs";
        }

        if (pszCPLName != NULL)
        {
            WCHAR szMessage[256], szScratch[256];
            if (SUCCEEDED(StringCchPrintf(szScratch, 
                                          ARRAYSIZE(szScratch), 
                                          c_pszMessage2, 
                                          pszCPLName, 
                                          pszCPLName)))
            {
                if (SUCCEEDED(StringCchCopy(szMessage, 
                                            ARRAYSIZE(szMessage), 
                                            c_pszMessage1)))
                {
                    if (SUCCEEDED(StringCchCat(szMessage, 
                                               ARRAYSIZE(szMessage), 
                                               szScratch)))
                    {
                        if (IDOK == MessageBox(NULL, 
                                               szMessage, 
                                               c_pszApplicationName, 
                                               MB_OKCANCEL))
                        {
                            ShellExecute(NULL, 
                                         NULL, 
                                         L"appwiz.cpl", 
                                         NULL, 
                                         NULL, 
                                         SW_SHOWNORMAL);
                        }
                    }
                }
            }
        }
    }
    return 0;
}

Registreren voor toepassingsinvoerpunten

Een toepassing kan veel toegangspunten binnen het besturingssysteem hebben. Hier volgen de aanbevolen locaties voor toegangspunten:

  • Bureaublad
  • Startmenu
  • Werkbalk Snel starten (beschikbaar in Windows Vista en eerder)
  • Systeemvak
  • Snelmenu's
  • Taakbalk voor mappen

Deze sectie is gericht op deze specifieke gebieden:

Openen met

Met het snelmenu Openen met kan de gebruiker een toepassing selecteren die een specifiek bestandstype kan verwerken. Hoewel Openen met kan worden gebruikt om een bestand met een toepassing eenmalig te openen, kan het ook worden gebruikt om de standaardwaarde voor die bestandsnaamextensie in te stellen. Daarom moet een toepassing zich altijd registreren voor Openen met, zodat gebruikers deze toepassing als keuze kunnen zien. Toepassingen kunnen zowel bestandstypen als protocollen registreren voor Openen met. Toepassingen die protocollen registreren in het Standaardprogramma's framework worden automatisch toegevoegd aan de Openen met opties voor protocollen.

Zie Inleiding over bestandskoppelingenvoor informatie over hoe u zich kunt registreren voor Openen met.

Startmenu en Snelle Startbalk

Toepassingen kunnen snelkoppelingen toevoegen aan verschillende locaties in Windows om meer vindbaar te worden voor de gebruiker. De meest voorkomende plek om een snelkoppeling toe te voegen is het menu Start. In Windows Vista en hoger maakt een toepassing een snelkoppeling in de verborgen map %ProgramData%\Microsoft\Windows\Start Menu\Programma's die worden weergegeven in de lijst met programma's van Start menu voor alle gebruikers. Meestal voegt een toepassing een submap toe die de snelkoppeling bevat.

Voor browser- en e-mailprogramma's bevat het menu Start Start ook twee speciale koppelingen buiten de programmalijst, canoniek getiteld Internet en E-mail. Nadat een toepassing zich voor deze categorieën heeft geregistreerd, kan het framework Standaardprogramma's beheren wat via deze koppelingen wordt gestart.

Notitie

De internet- en e-mail speciale menukoppelingen start zijn niet meer aanwezig vanaf Windows 7.

 

Om de vindbaarheid verder te vergroten, kunnen toepassingen ook snelkoppelingen toevoegen aan het bureaublad en de balk Snel starten. Toepassingen moeten de gebruiker om toestemming vragen (meestal tijdens de installatie of tijdens de eerste uitvoering) voordat u een pictogram toevoegt aan de menu Start menu, bureaublad of balk Snel starten.

Notitie

De werkbalk Snel starten is niet meer beschikbaar vanaf Windows 7. Het windows 7-alternatief is om de toepassing vast te maken aan de taakbalk, maar het vastmaken kan niet programmatisch worden uitgevoerd omdat het strikt een gebruikerskeuze is.

 

Zie de volgende onderwerpen voor meer informatie:

Installatie van toepassingen en standaardinstellingen

Toepassingsinstallatieprocedures zijn niet fundamenteel gewijzigd sinds Windows XP, met uitzondering van een nieuwe richtlijn voor systemen met versies van Windows ouder dan Windows 8: standaardwaarden per computer gebruiken tijdens de installatie, maar geen standaardwaarden per gebruiker instellen totdat die gebruiker de toepassing voor het eerst uitvoert. (Zie Application First Run and Defaults.) Toepassingen mogen tijdens de installatie geen standaardwaarden per gebruiker instellen omdat er situaties zijn waarin de persoon die de toepassing installeert niet de beoogde gebruiker is. Vanaf Windows 8 worden standaardinstellingen per computer niet ondersteund en kunnen toepassingen de standaardinstellingen per gebruiker niet wijzigen.

Tijdens de installatie moet een toepassing de binaire bestanden naar de harde schijf kopiëren en de ProgID's naar het register schrijven. De toepassing moet zich op dit moment ook registreren voor Standaardprogramma's en Openen met voor elke bestandskoppeling die het kan verwerken. De toepassing kan de subsleutel OpenWithProgIds gebruiken om zich te registreren bij Open With.

Zie de volgende onderwerpen voor meer informatie:

Toepassingsupgrades en -standaardinstellingen

Veel toepassingen hebben de mogelijkheid om zichzelf na verloop van tijd te upgraden. Deze upgradeprocedure mag de status van de standaardinstellingen per gebruiker niet wijzigen omdat deze wijziging onverwacht is voor de gebruiker. Het is echter acceptabel dat een toepassing bestandskoppelingen op computerniveau controleert en herstelt als ze zijn beschadigd.

Toepassing voor het eerst uitvoeren en standaardwaarden

Notitie

Vanaf Windows 8 verwerkt het systeem deze procedure namens alle toepassingen. Toepassingen zelf kunnen geen query's meer uitvoeren en standaardwaarden wijzigen. Alleen de gebruiker kan dat doen. Daarom mogen toepassingen niet proberen een query uit te voeren op de huidige standaardinstelling of deze standaard wijzigen via een mechanisme. Toepassingen kunnen echter een ingangspunt bieden voor standaardprogramma's in het Configuratiescherm door de LaunchAdvancedAssociationUI methode van de IApplicationAssociationRegistrationUI interface aan te roepen.

 

Met de introductie van standaardinstellingen per gebruiker in Windows Vista is het belangrijk dat toepassingen die voor populaire bestandsnaamextensies vechten, allemaal een algemene gebruikerservaring bieden om deze extensies te claimen. Omdat deze standaardwaarden nu zijn ingesteld in de context van de gebruiker, moeten ze zichzelf alleen als standaardmogelijkheid presenteren wanneer de gebruiker het programma na de installatie uitvoert.

De richtlijn voor het vaststellen van standaardinstellingen per gebruiker is dit: wanneer een toepassing voor het eerst wordt uitgevoerd voor een specifieke gebruiker, moet die toepassing gebruikersvoorkeuren aanvragen voor standaardinstellingen en bestandskoppelingen voor zichzelf.

De aanbevolen gebruikersinterface moet twee duidelijke keuzes bieden aan de gebruiker:

  1. Accepteer alle standaardwaarden die de toepassing wil toewijzen. Deze optie kan ook andere standaardeigenschappen van de toepassing instellen, zoals privacy- of automatische update-instellingen. Met deze optie kan de toepassing alle geregistreerde standaardinstellingen claimen.
  2. Aanpassen door standaardselecties en programma-instellingen afzonderlijk te accepteren of niet te accepteren. Deze optie biedt verdere gebruikersinterface waarmee de gebruiker gedetailleerde keuzes kan maken voor de standaardopties.

Zie Standaardprogramma'svoor meer informatie.

Notitie

Dit wordt niet ondersteund vanaf Windows 8.

 

Nadat een toepassing is geregistreerd bij Standaardprogramma's in Windows Vista en later, worden bepaalde API's beschikbaar voor de toepassing. Een toepassing moet bijvoorbeeld controleren of dit het standaardprogramma is. De interface IApplicationAssociationRegistration biedt methoden om dit te doen.

Elke toepassing die standaardwaarden wil claimen, moet eerst de gebruiker vragen en nooit zonder toestemming standaardwaarden claimen. De gebruiker moet worden gevraagd of ze de applicatie als standaard willen instellen of de huidige standaard willen behouden. Er moet ook een optie zijn om deze vraag niet opnieuw te stellen nadat de gebruiker zijn keuze heeft gemaakt.

Zie Standaardprogramma'svoor meer informatie.

Tips voor toepassingscompatibiliteit

Deze sectie bevat enkele tips voor toepassingscompatibiliteit met betrekking tot de standaardprogramma's in Windows.

Voorkomen dat Per-User virtualisatie wordt geactiveerd

Met de gebruikersaccountbeheeromgeving (UAC) moeten toepassingen altijd worden uitgevoerd met alleen standaardgebruikersrechten voor de beste klantervaring. Om veiligheidsredenen kunnen toepassingen met een standaardniveau voor gebruikersbevoegdheden niet schrijven naar bepaalde delen van het register en naar bepaalde systeembestanden. Windows Vista en latere versies van Windows bieden een tijdelijke toepassingscompatiteitslaag om toepassingen te helpen de overgang te maken. Geblokkeerde pogingen om naar het register of naar systeembestanden te schrijven, worden 'gevirtualiseerd' zodat de toepassing blijft worden uitgevoerd, maar de gevoelige gebieden van het systeem worden niet gewijzigd. Toepassingen mogen echter niet afhankelijk zijn van de AppCompat-technologie als een langetermijnoplossing. In plaats daarvan moeten toepassingen gebruikmaken van de vele beschikbare hulpprogramma's om te controleren of ze kunnen worden uitgevoerd onder standaardgebruikersrechten. Een aantal herprogrammering van de toepassing is mogelijk vereist om dit te bereiken, maar moet worden uitgevoerd in het belang van compatibiliteit op lange termijn.

Vermijd AppCompat-waarschuwingen of -blokken van de programmacompatibiliteitsassistent

De Programmacompatibiliteitsassistent (PCA) is beschikbaar in Windows Vista en hoger. Het doel is om een geautomatiseerde methode te bieden om oudere programma's met compatibiliteitsproblemen beter te laten werken. De PCA bewaakt programma's op bekende problemen. Als er een probleem wordt gedetecteerd, wordt de gebruiker op de hoogte gebracht van het probleem en wordt aangeboden om effectieve oplossingen toe te passen voordat de gebruiker het programma opnieuw uitvoert. Om deze waarschuwingen of blokken te voorkomen, moeten ISV's de vele beschikbare hulpprogramma's gebruiken om ervoor te zorgen dat hun toepassingen compatibel zijn met Windows Vista, Windows 7 en hoger.

Ondersteuning voor eerdere versies van het Windows-besturingssysteem

De infrastructuur voor standaardprogramma's is niet beschikbaar op een Microsoft Windows-besturingssysteem voor Windows Vista. Wanneer toepassingen overschakelen naar de nieuwe infrastructuur voor standaardprogramma's, moeten ze daarom hun oudere toepassingsstandaardcode behouden om compatibiliteit met oudere versies van Windows te behouden. Een toepassing moet een versiecontrole van het besturingssysteem uitvoeren als onderdeel van de installatie om te bepalen welke toepassingsstandaardcode moet worden uitgevoerd.

Voor ondersteuning van een upgrade van Windows XP naar Windows Vista of hoger moeten toepassingen alle registervermeldingen toevoegen die vereist zijn voor standaardprogramma's, zelfs wanneer ze worden geïnstalleerd op een computer met Windows XP. De registratie heeft geen invloed op een computer met Windows XP, maar als de computer later wordt bijgewerkt, wordt de toepassing al geregistreerd en kan deze gebruikmaken van het framework.

Zie OSVERSIONINFOvoor meer informatie.

Aanvullende informatiebronnen

aanbevolen procedures voor bestandskoppelingen

voorbeeldscenario voor bestandskoppelingen

standaardprogramma's

Werken met de instelling van programmatoegang en computervoorkeuren (SPAD)