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

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

我想将文件扩展名与C#中的当前可执行文件关联起来。这样,当用户在资源管理器中单击之后的文件时,它将以给定的文件作为第一个参数来运行我的可执行文件。理想情况下,它还会将给定文件扩展名的图标设置为我的可执行文件的图标。谢谢大家。



慕田峪4524236
浏览 586回答 3
3回答

慕桂英4014372

似乎没有用于直接管理文件关联的.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\""

千巷猫影

此外,如果您决定采用注册表方式,请记住当前的用户关联位于HKEY_Current_USER\软件类..最好在那里添加应用程序,而不是本地机器类。如果您的程序将由有限的用户运行,那么无论如何您都无法修改classsroot。
打开App,查看更多内容
随时随地看视频慕课网APP