Partager via


Gestion des applications par défaut

La fonctionnalité Set Program Access and Computer Defaults (SPAD) a été ajoutée à Windows XP et aux versions ultérieures de Windows pour gérer les valeurs par défaut par ordinateur. En plus de SPAD, Windows Vista a introduit le concept d’applications par défaut par utilisateur et l’élément Programmes par défaut dans Panneau de configuration.

Important

Cette rubrique ne s’applique pas aux Windows 10. La façon dont les associations de fichiers par défaut fonctionnent a changé dans Windows 10. Pour plus d’informations, consultez la section Modifications apportées à la façon dont Windows 10 gère les applications par défaut dans ce billet.

 

Les paramètres par défaut par utilisateur sont spécifiques à un compte d’utilisateur individuel sur le système. Si les paramètres par défaut par utilisateur sont présents, ils sont prioritaires sur les valeurs par défaut correspondantes par ordinateur pour ce compte. À partir du Windows 8, le système d’extensibilité pour les valeurs par défaut de type de fichier et de protocole est strictement par utilisateur et les valeurs par ordinateur sont ignorées. SPAD a également changé dans Windows 8 pour définir les valeurs par défaut par utilisateur.

  • Sur les systèmes exécutant des versions de Windows antérieures à Windows 8, un compte d’utilisateur nouvellement créé reçoit les valeurs par défaut par ordinateur jusqu’à ce que les valeurs par défaut par utilisateur soient établies. Dans Windows Vista et versions ultérieures, les utilisateurs peuvent utiliser l’élément Programmes par défaut dans Panneau de configuration pour définir ou modifier leurs valeurs par défaut par utilisateur. En outre, lorsqu’une application est exécutée pour la première fois, les valeurs par défaut par utilisateur peuvent être définies à l’aide des instructions qui suivent dans la section Première exécution de l’application et Valeurs par défaut .
  • Sur les systèmes exécutant Windows 8, un compte d’utilisateur nouvellement créé s’appuie sur les valeurs par défaut par utilisateur dès le début et le paramètre de ces valeurs par défaut lors de la première exécution, comme expliqué dans la section Première exécution de l’application et Valeurs par défaut, n’est plus pris en charge.

Une application doit s’inscrire à la fois avec SPAD et la fonctionnalité Programmes par défaut pour être proposée en tant que programme par défaut dans Windows Vista et versions ultérieures.

Cette rubrique fournit aux éditeurs de logiciels indépendants (ISV) un guide rapide sur les étapes nécessaires pour inscrire et gérer les valeurs par défaut des applications dans Windows Vista et versions ultérieures. Des liens sont fournis vers des articles plus détaillés sur la rubrique de chaque section.

Élément programmes par défaut dans Panneau de configuration

Programmes par défaut est une fonctionnalité introduite dans Windows Vista, accessible directement à partir du menu Démarrer et Panneau de configuration. Il fournit une nouvelle infrastructure qui fonctionne avec des privilèges d’utilisateur standard (non élevés) et est conçu pour permettre aux utilisateurs et aux applications de gérer les valeurs par défaut par utilisateur. Pour les utilisateurs, les programmes par défaut offrent un moyen unifié et facilement accessible de gérer les paramètres par défaut, les associations de fichiers et les paramètres de lecture automatique dans toutes les applications du système. Pour les applications, l’utilisation de l’étendue par utilisateur fournie par les API Programmes par défaut offre les avantages suivants :

  • Aucune élévation

    Une application n’a pas besoin d’élever ses privilèges pour réclamer des valeurs par défaut.

  • Bon civisme

    Sur un ordinateur à plusieurs utilisateurs, chaque utilisateur peut sélectionner différentes applications par défaut.

  • Gestion par défaut

    Les API Programmes par défaut offrent un mécanisme fiable et cohérent pour vérifier automatiquement les status par défaut et récupérer les paramètres perdus sans avoir à écrire directement dans le Registre. Toutefois, à partir de Windows 8, nous ne recommandons pas aux applications d’interroger le status par défaut, car une application ne peut plus modifier les paramètres par défaut. Ces modifications ne peuvent être effectuées que par l’utilisateur.

Pour permettre à votre application de gérer efficacement les valeurs par défaut, vous devez inscrire votre application en tant que programme par défaut potentiel. Pour plus d’informations sur l’inscription et l’utilisation des API Programmes par défaut, consultez Programmes par défaut.

Les programmes par défaut fournissent également ces deux fonctionnalités :

  • Interface utilisateur par défaut réutilisable

    L’interface utilisateur des valeurs par défaut du programme (Définir vos programmes par défaut) et des associations de fichiers (Associer un type de fichier ou un protocole à un programme) peut être réutilisée et appelée à partir d’une application. Cela permet aux applications de fournir une expérience utilisateur standard pour la gestion des valeurs par défaut et évite aux éditeurs de logiciels indépendants d’avoir à développer une interface utilisateur personnalisée ou équivalente.

  • Inclusion de l’URL et des informations marketing

    Dans la page Définir vos programmes par défaut de l’élément Programmes par défaut dans Panneau de configuration, une application peut fournir des informations marketing et un lien vers le site web du fournisseur. Cette URL est dérivée du certificat Authenticode avec lequel l’application a été signée. Cela empêche toute utilisation incorrecte et le remplacement non autorisé de ce lien. Si une application a un certificat Authenticode qui inclut une URL incorporée, l’interface utilisateur Windows affiche cette URL incorporée. Les éditeurs de logiciels indépendants doivent tirer parti de cette fonctionnalité pour diriger les utilisateurs vers leur site web pour les mises à jour et autres téléchargements.

Définir l’accès au programme et les valeurs par défaut de l’ordinateur

Définir l’accès au programme et les paramètres par défaut de l’ordinateur (SPAD) permet aux administrateurs de gérer les valeurs par défaut à l’échelle de l’ordinateur qui sont héritées par tous les nouveaux utilisateurs de cet ordinateur. Avant Windows 8, SPAD permettait également aux administrateurs de réparer les associations de fichiers en cas de panne lorsque des programmes étaient supprimés du système. Toutefois, à partir de Windows 8, SPAD affecte uniquement les valeurs par défaut spécifiques à l’utilisateur.

Pour plus d’informations sur l’inscription d’une application dans SPAD, consultez Utilisation de set Program Access and Computer Defaults (SPAD) etInscription de programmes avec des types de clients. Les modifications spécifiques et les nouvelles recommandations sont abordées dans les sections qui suivent.

Définition des valeurs par défaut dans SPAD

Les valeurs par défaut par utilisateur remplacent les valeurs par défaut par ordinateur.

  • Avant Windows 8 : les valeurs par défaut définies dans SPAD (qui sont par ordinateur) ne seront pas visibles par les utilisateurs si les valeurs par défaut correspondantes par utilisateur sont définies. Si un utilisateur n’a pas défini de valeur par utilisateur, le système utilise la valeur par défaut de l’ordinateur correspondant. Les nouveaux comptes d’utilisateur sur un ordinateur héritent initialement des valeurs par défaut de l’ordinateur. La première fois qu’un utilisateur exécute une application, l’application doit inviter l’utilisateur à affecter ses valeurs par défaut par utilisateur. Consultez Première exécution de l’application et Valeurs par défaut.
  • Depuis Windows 8 : toutes les valeurs par défaut sont par utilisateur et tous les paramètres par défaut par ordinateur sont ignorés. Les applications ne peuvent plus définir les choix par défaut, de sorte qu’elles ne peuvent pas guider l’utilisateur dans l’attribution de ces valeurs par défaut.

Lorsqu’une application pré-Windows 8 implémente Set as Default dans SPAD, ces instructions doivent être suivies :

  • Les applications doivent revendiquer uniquement les valeurs par défaut au niveau de l’ordinateur via SPAD.
  • Les applications ne doivent pas revendiquer les valeurs par défaut par utilisateur via SPAD.

Lorsqu’une application Windows 8 implémente La valeur par défaut dans SPAD, elle doit inscrire ses types de fichiers et protocoles dans programmes par défaut, en utilisant le même nom d’application que celui utilisé dans SPAD. Cela permet à une modification de SPAD de se refléter comme une modification dans l’entrée Programmes par défaut correspondante pour l’utilisateur actuel.

Masquer l’accès dans SPAD

L’option masquer l’accès pour chaque valeur par défaut possible dans SPAD est accessible de l’une des deux manières suivantes :

  • Choisissez la catégorie Non-Microsoft des valeurs par défaut, ce qui supprime l’accès à toutes les valeurs par défaut de Microsoft.
  • Choisissez la catégorie Personnalisée et désactivez la zone Activer l’accès à ce programme case activée.

Auparavant, l’exécution de l’une de ces actions supprimait tous les points d’entrée des applications appropriées sur le système. Des instructions spécifiques pour cette situation indiquent de supprimer les raccourcis et les icônes des emplacements suivants :

  • Desktop (Expérience utilisateur)
  • Menu Démarrer
  • Barre de lancement rapide (Windows Vista et versions antérieures uniquement)
  • Zone Notifications
  • Menus contextuels
  • Groupe de tâches de dossiers

Les fournisseurs sont encouragés à implémenter ces instructions dans la fonction de rappel Masquer l’accès de l’application.

Autre méthode masquer l’accès dans SPAD

Pour certaines applications héritées, une implémentation complète de Masquer l’accès peut ne pas être pratique. Une autre méthode qui obtient le même effet, mais qui n’est pas facilement réversible par l’utilisateur, consiste à désinstaller l’application. Ce qui suit montre un exemple de comportement et un exemple de code pour l’implémenter.

L’expérience utilisateur recommandée pour cette alternative est la suivante :

  • Lorsque l’utilisateur désactive la zone Activer l’accès à ce programme dans SPAD, l’interface utilisateur suivante s’affiche.

    Boîte de dialogue vista sur le masquage de l’accès au programme

  • Lorsque l’utilisateur clique sur OK, l’élément Programmes et fonctionnalités dans Panneau de configuration s’affiche afin que l’utilisateur puisse désinstaller l’application.

  • La boîte de dialogue suivante doit s’afficher aux utilisateurs de Windows XP.

    Boîte de dialogue windows xp sur le masquage de l’accès au programme

  • Lorsque l’utilisateur Windows XP clique sur OK, l’élément Ajouter ou supprimer des programmes dans Panneau de configuration s’affiche afin que l’utilisateur puisse désinstaller l’application.

Le code suivant fournit une implémentation réutilisable pour la fonctionnalité Masquer l’accès, comme indiqué précédemment. Il peut être utilisé sur Windows XP, Windows Vista et 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;
}

Inscription aux points d’entrée d’application

Une application peut avoir de nombreux points d’entrée dans le système d’exploitation. Les emplacements recommandés pour les points d’entrée sont les suivants :

  • Desktop (Expérience utilisateur)
  • Menu Démarrer
  • Barre de lancement rapide (Windows Vista et versions antérieures uniquement)
  • Zone Notifications
  • Menus contextuels
  • Bande de tâches de dossiers

Cette section se concentre sur ces domaines spécifiques :

Ouvrir avec

Le menu contextuel Ouvrir avec permet à l’utilisateur de sélectionner une application capable de gérer un type de fichier spécifique. Alors qu’Open With peut être utilisé pour ouvrir un fichier avec une application une seule fois, il peut également être utilisé pour définir la valeur par défaut pour cette extension de nom de fichier. Par conséquent, une application doit toujours s’inscrire à Open With afin que les utilisateurs puissent choisir d’utiliser cette application. Les applications peuvent inscrire à la fois les types de fichiers et les protocoles pour Open With. Les applications qui inscrivent des protocoles dans l’infrastructure Programmes par défaut sont automatiquement ajoutées aux options Ouvrir avec pour les protocoles.

Pour plus d’informations sur l’inscription à Open With, consultez Introduction aux associations de fichiers.

Menu Démarrer et barre de lancement rapide

Pour devenir plus détectable pour l’utilisateur, les applications peuvent ajouter des raccourcis à différents emplacements dans Windows. L’emplacement le plus courant pour ajouter un raccourci est le menu Démarrer . Dans Windows Vista et versions ultérieures, une application crée un raccourci dans le dossier masqué %ProgramData%\Microsoft\Windows\Menu Démarrer\Programs pour qu’il apparaisse dans la liste des programmes du menu Démarrer pour tous les utilisateurs. En règle générale, une application ajoute un sous-dossier qui contient le raccourci.

Pour les navigateurs et les programmes de messagerie, le menu Démarrer de Windows Vista présente également deux liens dédiés en dehors de la liste des programmes: Internet et Courrier électronique. Une fois qu’une application s’est inscrite pour ces catégories, l’infrastructure Programmes par défaut peut gérer ce qui est lancé via ces liens.

Notes

Les liens du menu Démarrerdédiés à Internet et par courrier électronique ne sont plus présents à partir de Windows 7.

 

Pour améliorer la détectabilité, les applications peuvent également ajouter des raccourcis au bureau et à la barre de lancement rapide. Les applications doivent demander l’autorisation à l’utilisateur (généralement lors de l’installation ou lors de la première exécution) avant d’ajouter une icône au menu Démarrer , au bureau ou à la barre de lancement rapide.

Notes

La barre de lancement rapide n’est plus disponible à partir de Windows 7. L’alternative à Windows 7 consiste à épingler l’application à la barre des tâches, mais l’épinglage ne peut pas être effectué par programmation, car il s’agit strictement d’un choix utilisateur.

 

Pour plus d’informations, consultez les rubriques suivantes :

Installation de l’application et valeurs par défaut

Les procédures d’installation des applications n’ont pas fondamentalement changé depuis Windows XP, à l’exception d’une nouvelle recommandation pour les systèmes exécutant des versions de Windows antérieures à Windows 8 : prendre les valeurs par défaut par ordinateur au moment de l’installation, mais ne définir aucune valeur par défaut par utilisateur tant que cet utilisateur n’a pas exécuté l’application pour la première fois. (Voir Application First Run et Defaults.) Les applications ne doivent pas définir les valeurs par défaut par utilisateur pendant l’installation, car il existe des situations où la personne qui installe l’application n’est pas l’utilisateur prévu. Depuis Windows 8, les valeurs par défaut par ordinateur ne sont pas prises en charge et les applications ne peuvent pas modifier les paramètres par défaut par utilisateur.

Pendant l’installation, une application doit copier ses fichiers binaires sur le disque dur et écrire ses ProgID dans le Registre. L’application doit également s’inscrire aux programmes par défaut et Ouvrir avec pour chaque association de fichiers qu’elle est un candidat à gérer. L’application peut utiliser la sous-clé OpenWithProgIds pour s’inscrire auprès d’Open With.

Pour plus d’informations, consultez les rubriques suivantes :

Mises à niveau et valeurs par défaut des applications

De nombreuses applications ont la possibilité de se mettre à niveau au fil du temps. Cette procédure de mise à niveau ne doit pas modifier l’état des valeurs par défaut par utilisateur, car cette modification serait inattendue pour l’utilisateur. Toutefois, il est acceptable qu’une application case activée des associations de fichiers au niveau de l’ordinateur et les répare si elles ont été endommagées.

Première exécution de l’application et valeurs par défaut

Notes

Depuis Windows 8, le système gère cette procédure pour le compte de toutes les applications. Les applications elles-mêmes ne peuvent plus interroger et modifier les valeurs par défaut. Seul l’utilisateur peut le faire. Par conséquent, les applications ne doivent pas tenter d’interroger la valeur par défaut actuelle ou de modifier cette valeur par défaut par le biais d’un mécanisme quelconque. Toutefois, les applications peuvent fournir un point d’entrée aux programmes par défaut dans le Panneau de configuration en appelant la méthode LaunchAdvancedAssociationUI de l’interface IApplicationAssociationRegistrationUI.

 

Avec l’introduction des valeurs par défaut par utilisateur dans Windows Vista, il est important que les applications qui contestent les extensions de nom de fichier populaires fournissent toutes une expérience utilisateur commune pour revendiquer ces extensions. Étant donné que ces valeurs par défaut sont désormais définies dans le contexte de l’utilisateur, elles doivent se présenter comme possibilité par défaut uniquement lorsque l’utilisateur exécute le programme après l’installation.

La recommandation pour l’établissement des valeurs par défaut par utilisateur est la suivante : lorsqu’une application est exécutée pour la première fois pour un utilisateur spécifique, cette application doit demander des préférences utilisateur pour les valeurs par défaut et les associations de fichiers pour elle-même.

L’interface utilisateur recommandée doit fournir deux choix clairs à l’utilisateur :

  1. Acceptez toutes les valeurs par défaut que l’application souhaite revendiquer. Cette option peut également définir d’autres propriétés par défaut de l’application, telles que la confidentialité ou les paramètres de mise à jour automatique. Cette option permet à l’application de revendiquer toutes ses valeurs par défaut inscrites.
  2. Personnalisez en acceptant ou non les sélections par défaut et les paramètres de programme individuellement. Cette option présente une interface utilisateur supplémentaire qui permet à l’utilisateur d’effectuer des choix granulaires pour ses options par défaut.

Pour plus d’informations, consultez Programmes par défaut.

Notes

Cela n’est pas pris en charge depuis Windows 8.

 

Une fois qu’une application s’est inscrite auprès des programmes par défaut dans Windows Vista et versions ultérieures, certaines API deviennent disponibles pour l’application. Pour instance, une application peut avoir besoin de case activée s’il s’agit du programme par défaut. L’interface IApplicationAssociationRegistration fournit des méthodes pour ce faire.

Toute application qui souhaite revendiquer des valeurs par défaut doit d’abord demander à l’utilisateur et ne jamais revendiquer les valeurs par défaut sans autorisation. Il doit être demandé à l’utilisateur s’il souhaite faire de l’application la valeur par défaut ou laisser la valeur par défaut actuelle en place. Une fois que l’utilisateur a fait son choix, il doit également être possible de ne plus poser cette question.

Pour plus d’informations, consultez Programmes par défaut.

Conseils de compatibilité des applications

Cette section fournit des conseils de compatibilité des applications liés à l’expérience Programmes par défaut dans Windows.

Éviter le déclenchement de la virtualisation Per-User

Avec l’environnement de contrôle de compte d’utilisateur (UAC), les applications doivent toujours s’exécuter avec uniquement des droits d’utilisateur standard pour une expérience client optimale. Pour des raisons de sécurité, les applications avec un niveau de privilège utilisateur standard ne peuvent pas écrire dans certaines parties du Registre et dans certains fichiers système. Windows Vista et les versions ultérieures de Windows fournissent une couche de compatibilité d’application temporaire (AppCompat) pour aider les applications à effectuer la transition. Les tentatives d’écriture bloquées dans le Registre ou dans les fichiers système sont « virtualisées » afin que l’application continue à s’exécuter, mais les zones sensibles du système ne sont pas modifiées. Toutefois, les applications ne doivent pas s’appuyer sur la technologie AppCompat comme solution à long terme. Au lieu de cela, les applications doivent utiliser les nombreux outils disponibles pour vérifier qu’elles peuvent s’exécuter correctement avec des droits d’utilisateur standard. Une certaine reprogrammation de l’application peut être nécessaire pour ce faire, mais elle doit être effectuée dans l’intérêt de la compatibilité à long terme.

Éviter les avertissements ou les blocages AppCompat à partir de l’Assistant Compatibilité des programmes

L’Assistant Compatibilité des programmes (PCA) est fourni dans Windows Vista et versions ultérieures. Son objectif est de fournir une méthode automatisée pour améliorer le fonctionnement des programmes plus anciens présentant des problèmes de compatibilité. Le PCA surveille les programmes à la recherche de problèmes connus. Si un problème est détecté, il avertit l’utilisateur du problème et propose d’appliquer des solutions efficaces avant que l’utilisateur exécute à nouveau le programme. Pour éviter de voir ces avertissements ou blocages, les éditeurs de logiciels indépendants doivent utiliser les nombreux outils disponibles pour s’assurer que leurs applications sont compatibles avec Windows Vista, Windows 7 et versions ultérieures.

Prise en charge des versions précédentes du système d’exploitation Windows

L’infrastructure Programmes par défaut n’est disponible sur aucun système d’exploitation Windows avant Windows Vista. Par conséquent, lorsque les applications passent à la nouvelle infrastructure Programmes par défaut, elles doivent conserver leur ancien code d’application par défaut pour maintenir la compatibilité avec les anciennes versions de Windows. Une application doit exécuter une version de système d’exploitation case activée dans le cadre de son installation pour déterminer le code par défaut de l’application à exécuter.

Pour prendre en charge une mise à niveau de Windows XP vers Windows Vista ou version ultérieure, les applications doivent ajouter toutes les entrées de Registre requises pour les programmes par défaut, même lorsqu’elles sont installées sur un ordinateur exécutant Windows XP. L’inscription n’aura aucun effet sur un ordinateur exécutant Windows XP, mais si l’ordinateur est mis à niveau ultérieurement, l’application sera déjà inscrite et en mesure de tirer parti de l’infrastructure.

Pour plus d’informations, consultez OSVERSIONINFO.

Ressources supplémentaires

Meilleures pratiques pour les associations de fichiers

Exemple de scénario d’association de fichiers

Programmes par défaut

Utilisation de Set Program Access and Computer Defaults (SPAD)