Maison >développement back-end >C++ >Comment puis-je déterminer par programme l'application par défaut pour un type de fichier sous Windows ?
Récupération de l'application par défaut pour un type de fichier sous Windows
Pour déterminer l'application par défaut pour ouvrir des fichiers d'un type spécifique, vous pouvez utiliser le registre Windows. Dans HKEY_CLASSES_ROOT, chaque extension de fichier a une clé correspondante. L'application par défaut est stockée dans la valeur par défaut de cette clé.
Considérez l'exemple suivant pour ouvrir des fichiers HTML :
Cette méthode, a cependant des limites. Il repose sur l'implémentation du registre, qui peut différer selon les versions de Windows. Une approche plus fiable implique la fonction API Win32 AssocQueryString.
AssocQueryString
AssocQueryString vous permet d'interroger l'application par défaut pour un fichier spécifique tapez.
Syntaxe :
uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut );
Drapeaux :
Str:
Exemple :
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 ); AssocF flags = AssocF.Open_ByExeName; AssocStr str = AssocStr.Command; StringBuilder sb = new StringBuilder(); uint pcchOut = 0; uint ret = AssocQueryString(flags, str, ".txt", null, sb, ref pcchOut); if (ret == 0) { Console.WriteLine($"Default text editor: {sb.ToString()}"); } else { Console.WriteLine("Error retrieving default text editor."); }
Cette approche offre un moyen plus fiable pour déterminer l'application par défaut pour un type de fichier sous Windows.
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!