ホームページ  >  記事  >  バックエンド開発  >  C でファイル関連付け用のレジストリ エントリを作成するにはどうすればよいですか?

C でファイル関連付け用のレジストリ エントリを作成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-24 00:24:13714ブラウズ

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 に設定します。

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

クリーンアップ注意事項

アプリケーションのアンインストールレジストリ エントリは自動的に削除されません。孤立したエントリを防ぐには、アンインストール中にクリーンアップ ルーチンを追加して、関連付けられたキーを削除することを検討してください。

追加リソース:

  • 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。