Comment identifier l'application par défaut pour un type de fichier spécifique sous Windows
Lors du développement d'applications qui interagissent avec différents types de fichiers, il devient nécessaire pour identifier l'application par défaut associée à l'ouverture de ces fichiers. Pour y parvenir, Windows propose une méthode qui exploite les fonctions spécifiques à la plate-forme.
Le registre, bien que couramment utilisé, n'est pas un moyen fiable pour récupérer ces informations, comme le démontrent les instabilités de Windows 8.1. Par conséquent, l'approche préférée consiste à utiliser l'API Win32, en particulier la fonction AssocQueryString.
L'utilisation d'AssocQueryString nécessite d'importer les définitions nécessaires à partir de la bibliothèque Shlwapi.dll et de créer une méthode wrapper :
using System.Runtime.InteropServices; [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)] public static extern uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut ); [Flags] public enum AssocF { None = 0, ... } public enum AssocStr { Command = 1, ... }
Un exemple d'implémentation peut être trouvé ci-dessous :
static string AssocQueryString(AssocStr association, string extension) { ... return sb.ToString(); }
En appelant cette fonction avec les paramètres appropriés, les développeurs peuvent récupérer le chemin d'accès à l'exécutable associé à l'ouverture d'un type de fichier particulier. Cela permet une intégration transparente avec des applications externes lors du lancement de fichiers dans votre propre logiciel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!