首頁  >  文章  >  後端開發  >  如何在 C 中建立文件關聯的註冊表項?

如何在 C 中建立文件關聯的註冊表項?

Barbara Streisand
Barbara Streisand原創
2024-11-24 00:24:13713瀏覽

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

在C 中建立檔案關聯的登錄項目

簡介

簡介

將您的🎜>將應用程式與特定的整合文件類型需要透過註冊表項將它們關聯起來。這可確保雙擊支援的檔案開啟您的程式並將檔案名稱作為參數傳遞。

第 1 步:註冊 ProgID(文件類型)

在文件關聯的核心是ProgID,它標識註冊表中的文件類型。使用 SetValue 函數在 HKEY_CURRENT_USERSoftwareClasses 中建立 ProgID。

步驟 2:關聯檔案副檔名

接下來,將目標檔案副檔名與 ProgID 關聯。這是透過在 HKEY_CURRENT_USERSoftwareClasses 下建立一個副檔名為 ProgID 的子項並將其值設為 ProgID 來實現的。

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

C 語言範例程式碼

清理注意事項

卸載應用程式不會自動刪除登錄機碼

  • 卸載應用程式不會自動刪除登錄機碼
  • 卸載應用程式不會自動刪除登錄機碼
卸載應用程式不會自動刪除登錄機碼移除程式碼。為了防止孤立條目,請考慮在卸載過程中新增清理例程以刪除關聯的金鑰。 其他資源:MSDN:檔案關聯的最佳實務: https://docs.microsoft.com/en-us/windows/win32/shell/best-practices-for-file-associations檔案類型與檔案關聯:https://docs.microsoft.com /en-us/windows/win32/shell/file-types-and-file-associations

以上是如何在 C 中建立文件關聯的註冊表項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn