为了账号安全,请及时绑定邮箱和手机立即绑定

如何将文件扩展名与C#中的当前可执行文件关联

如何将文件扩展名与C#中的当前可执行文件关联

C#
慕田峪4524236 2019-07-04 16:47:44
如何将文件扩展名与C#中的当前可执行文件关联我想将文件扩展名与C#中的当前可执行文件关联起来。这样,当用户在资源管理器中单击之后的文件时,它将以给定的文件作为第一个参数来运行我的可执行文件。理想情况下,它还会将给定文件扩展名的图标设置为我的可执行文件的图标。谢谢大家。
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

似乎没有用于直接管理文件关联的.NET API,但是您可以使用Registryclass来读取和写入所需的键。

您需要在HKEY_CLASS_ROOT下创建一个键,其名称设置为文件扩展名(例如:“.txt”)。将此键的默认值设置为文件类型的唯一名称,如“Acmet.extFile”。然后在HKEY_CLASS_ROOT下创建另一个键,其名称设置为“Acmet.extFile”。添加一个名为“DefaultIcon”的子键,并将键的默认值设置为包含希望用于此文件类型的图标的文件。添加另一个名为“shell”的兄弟姐妹。在“shell”键下,为希望通过资源管理器上下文菜单提供的每个操作添加一个键,设置每个键的默认值,使每个键指向可执行文件的路径,后面跟着空格,“%1”表示所选文件的路径。

例如,这里有一个示例注册表文件,用于在.txt文件和EmEditor之间创建关联:

Windows Registry Editor Version 5.00

[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\""


查看完整回答
反对 回复 2019-07-04
?
千巷猫影

TA贡献1829条经验 获得超7个赞

此外,如果您决定采用注册表方式,请记住当前的用户关联位于HKEY_Current_USER\软件类..最好在那里添加应用程序,而不是本地机器类。

如果您的程序将由有限的用户运行,那么无论如何您都无法修改classsroot。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 585 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信