Lorsque vous sélectionnez un fichier unique, que vous ouvrez une fenêtre Get Info et que vous choisissez une application différente de celle par défaut, cette liaison des services de lancement est enregistrée dans la fourche de ressources du fichier lui-même, dans un fichier de type 'usro'
(User Override). Pour autant que je sache, le format de cette ressource est privé, déterminé par Apple, et est susceptible d'être modifié. (Les caractères tout en minuscules dans le nom OSType fournissent un indice, puisque Apple réserve les types de fichiers, les codes de créateurs et les types de ressources avec tous les caractères minuscules. Par exemple, 'icns'
(Icon Suite) type de ressource, 'ttxt'
(à l'origine de Teach Text, mais qui est maintenant le code créateur (CFBundleSignature) de TextEdit.app), etc.)
Cette ressource est créée à l'aide des fonctions du gestionnaire de ressources pour modifier le fork du fichier, ce qui met à jour la date de modification du fichier.
Un exemple de fichier sur lequel je viens d'essayer cette procédure est montré dans l'image ci-dessous, ouvert dans Resorcerer. (Note spéciale : vous remarquerez dans la colonne de gauche qu'il y a 2 types listés : 'TEXT'
y 'usro'
. Il n'y a en fait qu'un seul 'usro'
l'entrée ; Resorcerer montre qu'il y a une 'TEXT'
parce qu'il remarque que le contenu de la fourchette de données du fichier est basé sur du texte (un fichier d'en-tête de code source), et y fournit donc un accès pratique). La deuxième image montre le contenu de cette ressource, qui contient essentiellement un chemin vers l'application cible que j'ai choisie.
Puisque cette 'usro'
La ressource User Override est enregistrée dans le fichier lui-même, ce qui explique pourquoi la ressource Guide de programmation des services de lancement : Choix de la préférence de reliure pour un fichier revendique ce qui suit :
Remarque : les préférences de liaison explicites pour les éléments individuels ne sont pas spécifiques à l'utilisateur mais à l'ensemble du système, c'est-à-dire qu'elles continuent de s'appliquer à l'élément donné sur le même ordinateur, même si un autre utilisateur se connecte.
Maintenant, pour aller un peu plus loin. Si vous cliquez maintenant sur le bouton Change All
pour que cela soit une dérogation globale, les services de lancement supprimeront le bouton 'usro'
et crée à la place une liaison globale qui est stockée dans le fichier com.apple.LaunchServices.plist (préférences par utilisateur). La suppression du fichier 'usro'
L'entrée est effectuée en utilisant les fonctions du gestionnaire de ressources, qui met à jour la date de modification du fichier. Notez que, bien que cela supprime l'élément 'usro'
il ne peut pas supprimer la fourche entière de la ressource. Dans la plupart des cas, 286 octets resteront dans la fourche de ressources, ce qui correspond à l'espace minimum occupé par l'en-tête et la carte de ressources.