ホームページ > バックエンド開発 > C++ > C# でプログラム的にファイル拡張子を実行可能ファイルに関連付けるにはどうすればよいですか?

C# でプログラム的にファイル拡張子を実行可能ファイルに関連付けるにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-20 16:14:14
オリジナル
429 人が閲覧しました

How Can I Programmatically Associate File Extensions with Executables in C#?

C# でのファイル拡張子と実行可能ファイルの関連付け

C# 自体には、ファイルの関連付けを管理するための API が組み込まれていません。ただし、ファイルの関連付け情報はレジストリに保存されているため、レジストリ API を利用して Windows レジストリにアクセスし、変更することができます。

特定のファイル拡張子を実行可能ファイルに関連付けるには、HKEY_CLASSES_ROOT の下にレジストリ キーを作成する必要があります。

  1. ファイル拡張子のサブキーを作成します:

    • ファイル拡張子 (例: .txt) を付けたサブキーを HKEY_CLASSES_ROOT の下に作成します。
    • このサブキーのデフォルト値を、「Acme.TextFile」など、ファイルの種類に応じた一意の名前に設定します。
  2. ファイルタイプのサブキーの作成:

    • 前の手順で使用した名前 (たとえば、「Acme.TextFile」) で HKEY_CLASSES_ROOT の下にサブキーを作成します。
  3. デフォルトのアイコンを設定します:

    • ファイル タイプ サブキーの下に「DefaultIcon」という名前のサブキーを追加します。
    • 使用するアイコンのパスとインデックスを「DefaultIcon」のデフォルト値に設定します。
  4. コンテキスト メニュー アクションを追加:

    • ファイルタイプのサブキーの下に「shell」という名前のサブキーを作成します。

    • 「shell」サブキーの下に、追加するコンテキスト メニュー アクションごとにサブキーを作成します。

    • 各アクションのサブ項目のデフォルト値を次の文字列に設定します:

      • "executable_path" "%1"
      • "executable_path" を実行可能ファイルへのパスに置き換え、"%1" を引数として渡されたファイル パスのプレースホルダーに置き換えます。

たとえば、.txt ファイルを EmEditor に関連付けるには、次のレジストリ キーを作成する必要があります:

<code>[HKEY_CLASSES_ROOT\.txt]
@="emeditor.txt"

[HKEY_CLASSES_ROOT\emeditor.txt]
@="Text Document"

[HKEY_CLASSES_ROOT\emeditor.txt\DefaultIcon]
@="%SystemRoot%\SysWow64\imageres.dll,-102"

[HKEY_CLASSES_ROOT\emeditor.txt\shell]

[HKEY_CLASSES_ROOT\emeditor.txt\shell\open]

[HKEY_CLASSES_ROOT\emeditor.txt\shell\open\command]
@="\"C:\Program Files\EmEditor\EMEDITOR.EXE\" \"%1\""

[HKEY_CLASSES_ROOT\emeditor.txt\shell\print]

[HKEY_CLASSES_ROOT\emeditor.txt\shell\print\command]
@="\"C:\Program Files\EmEditor\EMEDITOR.EXE\" /p \"%1\""</code>
ログイン後にコピー

以上がC# でプログラム的にファイル拡張子を実行可能ファイルに関連付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート