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 (autrement dit, 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, que l’application soit inscrite 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 open avec sous-menu, comme illustré dans la capture d’écran suivante.

screen shot of shortcut menu with the open with submenu shown

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.

screen shot of the open with dialog box with recommended programs

Notes

Si une application s’est inscrite dans openWithList ou OpenWithProgIDs 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 que, quelle que soit l’application proposée 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 de 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 vers la liste de sauts 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 de fichier commune et tout appel à la fonction SHAddToRecentDocs d’ajouter n’importe quel 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 les types de fichiers qu’elle ne peut pas ouvrir. Elle entraîne également l’affichage de l’application dans la liste des programmes recommandés , comme indiqué précédemment.

Cette méthode est particulièrement utile si une application peut enregistrer un fichier sous la forme d’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’ajout de l’élément aux parties récentes ou fréquentes d’une liste de sauts. Elle empêche également l’application d’être suivie 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 sont éligibles à l’épinglage vers la liste de saut de l’application ou pour ê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 .