ホームページ >バックエンド開発 >C++ >レジストリ エントリを使用してファイル拡張子を C アプリケーションに関連付けるにはどうすればよいですか?

レジストリ エントリを使用してファイル拡張子を C アプリケーションに関連付けるにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-27 13:52:11495ブラウズ

How can I associate a file extension with my C   application using registry entries?

C でファイル拡張子をアプリケーションに関連付ける : 詳細ガイド

C アプリケーションに関連付けられたファイルをダブルクリックして、パラメータとして渡されたファイル名を使用してアプリケーションを実行すると、レジストリ エントリが作成されます。

レジストリ エントリの作成

MSDN の記事で説明されているように、次の 2 つの重要な手順が必要です。

  • レジストリ エントリの登録ProgID: ProgID (ファイル タイプ レジストリ キー) は、ファイル タイプのプロパティを保持します。アイコン、説明、およびコンテキスト メニューのオプション。
  • ファイル拡張子の登録: この手順では、ファイル拡張子を ProgID に割り当て、拡張子とファイルの種類との関連付けを作成します。

これらの手順を示すサンプル .reg ファイルは次のとおりです。

[HKEY_CURRENT_USER\Software\Classes\blergcorp.blergapp.v1\shell\open\command]
@="c:\path\to\app.exe \""%1"\""
[HKEY_CURRENT_USER\Software\Classes\.blerg]
@="blergcorp.blergapp.v1"

C でのプログラムによる実装

C で SetValue 関数を使用すると、プログラムによってレジストリ キーを作成できます:

Registry::SetValue(@"HKEY_CURRENT_USER\Software\Classes\blergcorp.blergapp.v1\shell\open\command", null, @"c:\path\to\app.exe \"%1\"\""), 
Registry::SetValue(@"HKEY_CURRENT_USER\Software\Classes\.blerg", null, "blergcorp.blergapp.v1");

ハイブ選択

例では、これらのキーを HKEY_CLASSES_ROOT に設定することが推奨されていますが、ユーザーごとの関連付けを設定するには HKEY_CURRENT_USER を使用することをお勧めします。これにより、あるユーザーによる変更が他のユーザーに影響を与えないようになります。

クリーンアップ

アプリケーションを削除すると、明示的に削除しない限り、ファイルの関連付け用に作成されたレジストリ エントリは残ります。 。アンインストール中にこれらのエントリを削除するには、レジストリ クリーンアップ メカニズムの実装を検討してください。

追加リソース

詳細については、次を参照してください。

  • [ファイルのベストプラクティス関連付け](https://docs.microsoft.com/en-us/windows/win32/fileassoc/best-practices-for-file-association)
  • [ファイルの種類とファイルの関連付け](https:/ /docs.microsoft.com/en-us/windows/win32/fileassoc/file-types-and-file-association)
  • [ファイルの関連付けの方法Work](https://docs.microsoft.com/en-us/windows/win32/fileassoc/how-file-associations-work)

以上がレジストリ エントリを使用してファイル拡張子を C アプリケーションに関連付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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