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
Barbara Streisandoriginal
2024-11-24 00:24:13812parcourir

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);

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:
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