Comment exclure une application de la boîte de dialogue Ouvrir avec pour les types de fichiers non associés

Lorsqu’un utilisateur tente d’ouvrir un fichier qui n’est pas membre d’un type de fichier inscrit (c’est-à-dire un type de fichier inconnu), ou lorsqu’un utilisateur sélectionne Ouvrir avec ou Ouvrir avec -> Choisir le programme par défaut dans le menu contextuel d’un fichier, l’interpréteur de commandes présente un sous-menu ou une boîte de dialogue qui permet à l’utilisateur de spécifier le programme utilisé pour ouvrir le fichier.

Par défaut, toute application inscrite en tant que sous-clé de HKEY_CLASSES_ROOT\Applications est présentée dans la boîte de dialogue Ouvrir avec . Ces applications sont présentées dans Open avec que l’application soit inscrite ou non pour gérer le type de fichier.

Pour empêcher une application d’apparaître dans la boîte de dialogue Ouvrir avec lorsque l’application ne doit pas ou ne peut pas être utilisée pour ouvrir certains types de fichiers, utilisez l’une des deux techniques décrites dans cette rubrique.

Instructions

Étape 1 :

Ajoutez une entrée NoOpenWith à la sous-clé de l’application. Lorsqu’une application utilise un type de fichier, Windows enregistre ces informations pour générer la liste Programmes recommandés . Cette liste est présentée dans le sous-menu Ouvrir avec , comme illustré dans la capture d’écran suivante.

capture d’écran du menu contextuel avec ouvrir avec le sous-menu affiché

Ces applications recommandées sont également affichées dans la partie Programmes recommandés de la boîte de dialogue Ouvrir avec , comme illustré dans la capture d’écran suivante.

capture d’écran de la boîte de dialogue ouvrir avec les programmes recommandés

Notes

Si une application s’est inscrite dans les fichiers OpenWithList ou OpenWithProgID pour le type de fichier, elle apparaît dans la liste Programmes recommandés même si l’entrée NoOpenWith est définie. En outre, n’oubliez pas qu’une application est proposée ou non dans une liste de programmes recommandés, un utilisateur peut accéder manuellement à n’importe quel fichier exécutable.

 

Les applications peuvent désactiver ce suivi en spécifiant une valeur NoOpenWith sous la sous-clé de l’application.

L’entrée NoOpenWith est une valeur REG_SZ vide, comme illustré dans l’exemple suivant.

HKEY_CLASSES_ROOT
   Applications
      MyProgram.exe
         NoOpenWith

La définition de l’entrée NoOpenWith a également les effets suivants :

  • Empêche l’épinglage d’un fichier à la liste de raccourcis de l’application par glisser-déplacer, sauf si l’application est spécifiquement inscrite pour gérer ce type de fichier.
  • Empêche la boîte de dialogue fichier commune et tout appel à la fonction SHAddToRecentDocs d’ajouter un fichier à la liste de raccourcis de l’application, sauf si l’application est spécifiquement inscrite pour gérer ce type de fichier.

Étape 2 :

La deuxième façon d’empêcher une application d’apparaître dans la boîte de dialogue Ouvrir avec consiste à utiliser la sous-clé SupportedTypes pour répertorier explicitement les extensions des types de fichiers que l’application peut ouvrir. Cela empêche l’application d’apparaître dans la boîte de dialogue Ouvrir avec pour les types de fichiers qu’elle ne peut pas ouvrir. Cela entraîne également l’affichage de l’application dans la liste Programmes recommandés , comme indiqué précédemment.

Cette méthode est particulièrement utile si une application peut enregistrer un fichier sous un certain type de fichier, mais ne peut pas ouvrir ce type de fichier. Une application doit également définir l’indicateur FOS_DONTADDTORECENT via IFileDialog::SetOptions lors de l’appel de la boîte de dialogue Enregistrer . Cela empêche l’élément d’être ajouté aux parties Récentes ou Fréquentes d’une liste de raccourcis. Elle empêche également le suivi de l’application sous OpenWithList.

Chaque extension prise en charge est ajoutée en tant qu’entrée sous la sous-clé SupportedTypes , comme illustré dans l’exemple suivant. Les entrées sont de type REG_SZ ou REG_NULL, sans valeurs associées.

HKEY_CLASSES_ROOT
   Applications
      ApplicationName
         SupportedTypes
            .ext1
            .ext2
            .ext3

Si une sous-clé SupportedTypes est fournie, seuls les fichiers avec ces extensions peuvent être épinglés à la liste de raccourcis de l’application ou être suivis dans la liste des destinations récentes ou fréquentes d’une application.

L’entrée NoOpenWith remplace la sous-clé SupportedTypes et masque l’application dans la boîte de dialogue Ouvrir avec .