2011-11-17 70 views
4

在我的应用程序中,我创建了扩展名为.mprj的文件。c#:与文件扩展名关联的图标

如何将图标分配给此类文件?

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

+0

将关联的

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

更多信息文件类型到您的程序是可接受的解决方案? –

+0

相关主题 - http://stackoverflow.com/questions/69761/how-to-associate-a-file-extension-to-the-current-executable-in-c-sharp – adatapost

+0

这已经在下面彻底解答线程:http://stackoverflow.com/questions/2993118/how-to-perform-shell-icon-embedding-in-visual-studio-2010/10415947#10415947 –

回答

3

您需要修改注册表项。 一个代码片段如何处理c#可以在这里找到: http://mel-green.com/2009/04/c-set-file-type-association/

+2

请记住,直到您关闭或终止任何'Explorer.exe'进程然后重新启动它,指定的图标才会显示该扩展名!重新启动Windows是另一种解决方案。 – Marco

1

我建议你使用InnoSetup来做到这一点。您可以将带有扩展名的程序与添加图标相关联,并在用户单击带有此扩展名的文件时启动程序。 (例如直接在程序中打开文件,如msoffice程序)。当我们点击一​​个Excel文件时,Excel正在启动并打开这个文件。你可以用InnoSetup和main方法中的少量代码来解析参数。

用InnoSetup你只需要添加IIN节[设置]

ChangesAssociations=yes 

,并在段[注册]在此previous message

相关问题