2012-01-18 33 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