我想将文件扩展名与 C# 中的当前可执行文件关联起来。
这样,当用户随后在资源管理器中单击该文件时,它将使用给定文件作为第一个参数来运行我的可执行文件。
理想情况下,它还会将给定文件扩展名的图标设置为我的可执行文件的图标。
谢谢大家。
似乎没有用于直接管理文件关联的 .Net API,但您可以使用注册表类来读取和写入您需要的密钥。
您需要在 HKEY_CLASSES_ROOT 下创建一个键,并将名称设置为您的文件扩展名(例如:“.txt”)。将此键的默认值设置为文件类型的唯一名称,例如“Acme.TextFile”。然后在 HKEY_CLASSES_ROOT 下创建另一个项,名称设置为“Acme.TextFile”。添加一个名为“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\""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)