首页 >后端开发 >C++ >如何以编程方式将文件扩展名与 C# 中的可执行文件关联?

如何以编程方式将文件扩展名与 C# 中的可执行文件关联?

Barbara Streisand
Barbara Streisand原创
2025-01-20 16:14:14425浏览

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

在C#中将文件扩展名与可执行文件关联

C#本身并没有内置的API来管理文件关联。但是,您可以利用注册表API访问和修改Windows注册表,因为文件关联信息存储在注册表中。

要将特定的文件扩展名与您的可执行文件关联,您需要在HKEY_CLASSES_ROOT下创建注册表项。

  1. 创建文件扩展名的子项:

    • 在HKEY_CLASSES_ROOT下创建一个子项,其名称为文件扩展名(例如,.txt)。
    • 将此子项的默认值设置为您的文件类型的唯一名称,例如“Acme.TextFile”。
  2. 创建文件类型子项:

    • 在HKEY_CLASSES_ROOT下创建一个子项,其名称为上一步中使用的名称(例如,“Acme.TextFile”)。
  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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn