2012-01-18 30 views
12

Inno Setup FAQ是如何分配文件類型到我的軟件的例子。處理註冊表是沒有問題的。Inno Setup的可選(用戶可選)文件關聯

但我該如何提供用戶選擇他想分配的文件類型?比方說,我已經爲文本文件編寫了一個簡單的編輯器,並且想要詢問用戶是否想用我的程序分配.txt和/或.nfo。帶複選框的設置頁面將是天才。

如何使用Inno Setup的做到這一點?

回答

17

添加一個「任務」的設置和關聯的每個完成這個任務你的文件關聯的註冊表項。例如:

[Tasks] 
Name: mypAssociation; Description: "Associate ""myp"" extension"; GroupDescription: File extensions: 

[Registry] 
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue; Tasks: mypAssociation 
Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekey; Tasks: mypAssociation 
... 


見的 '任務' here的文檔。

+0

精彩:-)謝謝 – 0xDEADBEEF 2012-01-18 15:04:32

+0

這完美地工作對我來說還有,謝謝! :) – Kaitlyn 2015-08-29 05:05:40

0

使用[任務]部分是@Sertac說的文件在Inno Setup的應用程序關聯的最簡單的方法。然後,您應該在[註冊表]部分填寫您想要關聯的擴展的詳細信息。有關此更多信息,請查看Inno Setup FAQ page

+1

您的鏈接不知何故被破壞。但是,你可能是指從Sertac在他的回答已經顯示出只有部分['這個FAQ tip'(http://www.jrsoftware.org/isfaq.php#assoc)(因此有'...'底部他的代碼示例)。所以,你的回答實際上沒有增加這個線程。但是,通過該常見問題解答鏈接放置評論可能會很有用,值得一提。 – TLama 2015-01-24 16:07:01

+0

嗨@TLama,是的,你說的是正確的鏈接。我糾正了它。我也發現這個鏈接對常見問題有用,因爲它解釋了[註冊表]部分中的所有這些鏈接。 – 2015-01-24 20:07:33

1

您可以找到有關文件關聯的innosetup在前面的回答的一些信息:Stackoverflow - Inno setup file association

在這裏,我們可以爲了使用這個文件關聯的.NET程序,只需通過解析參數找到爲例主要方法:Stackoverflow - Associate a file extension with WPF application

+1

那麼,即使在這裏,OP也知道如何使協會本身(見這個問題的第一句話)。這裏的問題是如何使這種關聯有條件。這就是爲什麼Sertac建議使用'[Tasks]'部分並縮短該FAQ(OP中提到的問題)中的腳本。所以即使這樣也沒有增加*線程*。 – TLama 2015-01-26 13:18:39