Maison > développement back-end > C++ > Comment créer des entrées de registre pour l'association de fichiers en C ?

Comment créer des entrées de registre pour l'association de fichiers en C ?

Barbara Streisand
Libérer: 2024-11-24 00:24:13
original
833 Les gens l'ont consulté

How Do I Create Registry Entries for File Association in C  ?

Création d'entrées de registre pour l'association de fichiers en C

Introduction

Intégration de votre application avec des Les types de fichiers nécessitent de les associer via des entrées de registre. Cela garantit qu'un double-clic sur un fichier pris en charge ouvre votre programme et transmet le nom de fichier comme argument.

Étape 1 : enregistrement du ProgID (type de fichier)

À la Le cœur de l'association de fichiers est le ProgID, qui identifie le type de fichier dans le registre. Utilisez la fonction SetValue pour créer le ProgID dans HKEY_CURRENT_USERSoftwareClasses.

Étape 2 : associer l'extension de fichier

Ensuite, associez l'extension du fichier cible au ProgID. Ceci est réalisé en créant une sous-clé avec le nom d'extension sous HKEY_CURRENT_USERSoftwareClasses et en définissant sa valeur sur ProgID.

Exemple de code en C

#include <windows.h>  // Header for registry functions

// Register the ProgID
HKEY hkey;
LONG result = RegCreateKeyEx(HKEY_CURRENT_USER,
                            "Software\Classes\YourProgID",
                            0,
                            NULL,
                            REG_OPTION_NON_VOLATILE,
                            KEY_ALL_ACCESS,
                            NULL,
                            &hkey,
                            NULL);

// Set the value of the ProgID key
RegSetValueEx(hkey,
             NULL,
             0,
             REG_SZ,
             (const BYTE *)"Your Description",
             sizeof("Your Description") + 1);

// Associate the file extension
RegCreateKeyEx(HKEY_CURRENT_USER,
             "Software\Classes\.YourExtension",
             0,
             NULL,
             REG_OPTION_NON_VOLATILE,
             KEY_ALL_ACCESS,
             NULL,
             &hkey,
             NULL);

// Set the value of the extension key
RegSetValueEx(hkey,
             NULL,
             0,
             REG_SZ,
             (const BYTE *)"YourProgID",
             sizeof("YourProgID") + 1);
Copier après la connexion

Nettoyage Considérations

La désinstallation de l'application ne supprimera pas automatiquement les entrées de registre. Pour éviter les entrées orphelines, pensez à ajouter une routine de nettoyage lors de la désinstallation pour supprimer les clés associées.

Ressources supplémentaires :

  • MSDN : meilleures pratiques pour l'association de fichiers : https://docs.microsoft.com/en-us/windows/win32/shell/best-practices-for-file-associations
  • Types de fichiers et association de fichiers : https://docs.microsoft.com /en-us/windows/win32/shell/file-types-and-file-associations

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal