Heim >Backend-Entwicklung >C++ >Wie erstelle ich Registrierungseinträge für die Dateizuordnung in C?

Wie erstelle ich Registrierungseinträge für die Dateizuordnung in C?

Barbara Streisand
Barbara StreisandOriginal
2024-11-24 00:24:13803Durchsuche

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

Erstellen von Registrierungseinträgen für die Dateizuordnung in C

Einführung

Integration Ihrer Anwendung mit spezifischen Dateitypen müssen über Registrierungseinträge verknüpft werden. Dadurch wird sichergestellt, dass ein Doppelklick auf eine unterstützte Datei Ihr Programm öffnet und den Dateinamen als Argument übergibt.

Schritt 1: Registrieren der ProgID (Dateityp)

Am Kernstück der Dateizuordnung ist die ProgID, die den Dateityp innerhalb der Registry identifiziert. Verwenden Sie die SetValue-Funktion, um die ProgID in HKEY_CURRENT_USERSoftwareClasses zu erstellen.

Schritt 2: Zuordnen der Dateierweiterung

Als nächstes verknüpfen Sie die Zieldateierweiterung mit der ProgID. Dies wird erreicht, indem unter HKEY_CURRENT_USERSoftwareClasses ein Unterschlüssel mit dem Erweiterungsnamen erstellt und dessen Wert auf die ProgID gesetzt wird.

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

Bereinigung Überlegungen

Durch die Deinstallation der Anwendung werden die Registrierungseinträge nicht automatisch entfernt. Um verwaiste Einträge zu verhindern, sollten Sie während der Deinstallation eine Bereinigungsroutine hinzufügen, um die zugehörigen Schlüssel zu löschen.

Zusätzliche Ressourcen:

  • MSDN: Best Practices für die Dateizuordnung: https://docs.microsoft.com/en-us/windows/win32/shell/best-practices-for-file-associations
  • Dateitypen und Dateizuordnung: https://docs.microsoft.com /en-us/windows/win32/shell/file-types-and-file-associations

Das obige ist der detaillierte Inhalt vonWie erstelle ich Registrierungseinträge für die Dateizuordnung in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn