Maison > développement back-end > C++ > Comment puis-je déterminer par programme l'application par défaut pour un type de fichier spécifique sous Windows ?

Comment puis-je déterminer par programme l'application par défaut pour un type de fichier spécifique sous Windows ?

DDD
Libérer: 2025-01-04 20:09:40
original
185 Les gens l'ont consulté

How Can I Programmatically Determine the Default Application for a Specific File Type on Windows?

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,
    ...
}
Copier après la connexion

Un exemple d'implémentation peut être trouvé ci-dessous :

static string AssocQueryString(AssocStr association, string extension)
{
    ...
    return sb.ToString();
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal