C#: 文件扩展名相关联的图标

4

在我的应用程序中,我创建了扩展名为 .mprj 的文件。

我如何为此类型的文件分配一个图标?

是否存在适当的 .Net 方法?


将文件类型与您的程序关联起来,这是否是可接受的解决方案? - George Duckett
相关线程 - https://dev59.com/X3VD5IYBdhLWcg3wJIIK - KV Prajapati
这个问题已经在以下stack overflow线程中得到了彻底的解答。我们一直在使用这个实现,它运行良好。它也是开源的,并且可以集成到MSBuild中。 - Blake Niemyjski
这个问题已经在以下线程中得到了详细的回答:https://dev59.com/QE7Sa4cB1Zd3GeqP2Enp#10415947 - Blake Niemyjski
2个回答

3

2
请记住,在关闭或结束任何“Explorer.exe”进程并重新启动后,指定的图标才会对该扩展程序可见!重启Windows是另一种解决方案。 - Marco

1
我建议您使用InnoSetup来完成这项任务。您可以将一个程序与一个扩展名相关联,以添加图标,并在用户单击具有该扩展名的文件时启动该程序。 (例如像msoffice程序一样直接在程序中打开文件)。当我们点击Excel文件时,Excel会启动并打开此文件。您可以在InnoSetup中轻松完成此操作,并在主方法中编写少量代码来解析参数。
使用InnoSetup时,您只需在[Setup]部分中添加即可。
ChangesAssociations=yes

在 [Registry] 部分中。
Root: HKCR; Subkey: ".mpl"; ValueType: string; ValueName: ""; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue
Root: HKCR; Subkey: "{#MyAppName}"; ValueType: string; ValueName: ""; ValueData: "Program {#MyAppName}"; Flags: uninsdeletekey
Root: HKCR; Subkey: "{#AppName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
Root: HKCR; Subkey: "{#AppName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}.EXE"" ""%1"""

在此以前的信息中获取更多相关内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接