2011-11-17 58 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

相關問題