Inno setup Inno设置可选(用户可选)文件关联

Inno setup Inno设置可选(用户可选)文件关联,inno-setup,Inno Setup,中的示例说明了如何将文件类型分配给我的软件。与登记处打交道没有问题 但是,我如何向用户提供要分配的文件类型的选择?比方说,我已经为文本文件编写了一个简单的编辑器,并想询问用户是否希望在我的程序中分配.txt和/或.nfo。带有复选框的设置页面将是天才 如何使用Inno安装程序执行此操作?将“任务”添加到安装程序中,并将文件关联的每个注册表项与此任务关联。例如: [Tasks] Name: mypAssociation; Description: "Associate ""myp"" extens

中的示例说明了如何将文件类型分配给我的软件。与登记处打交道没有问题

但是,我如何向用户提供要分配的文件类型的选择?比方说,我已经为文本文件编写了一个简单的编辑器,并想询问用户是否希望在我的程序中分配.txt和/或.nfo。带有复选框的设置页面将是天才


如何使用Inno安装程序执行此操作?

将“任务”添加到安装程序中,并将文件关联的每个注册表项与此任务关联。例如:

[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
...


请参阅“任务”文档。

如@Sertac所述,使用[Tasks]部分是将文件与Inno安装程序中的应用程序关联的最简单方法。然后,您应该在[Registry]部分填写要关联的扩展的详细信息。有关此问题的更多信息,请查看。

您可以在前面的回答中找到有关innosetup中文件关联的一些信息:


在这里,我们可以找到一个在.net程序中使用此文件关联的示例,只需解析main方法中的参数:

您的链接不知怎么断开了。但您可能是指Sertac在其答案中仅显示了部分内容(因此在其代码示例的底部有
)。所以,你的回答实际上没有给这个线索增加任何东西。但是,删除带有该常见问题解答链接的评论可能会很有用,值得一提。您好@TLama,是的,您的链接是正确的。我已经改正了。我也觉得这个FAQ的链接很有用,因为它解释了[Registry]部分中所有这些链接都是关于什么的。即使在这里,OP也知道如何建立关联(参见问题的第一句)。这里的问题是如何以某种方式使这种联系有条件。这就是为什么Sertac建议使用
[Tasks]
部分,并从FAQ(OP在他们的问题中提到)中缩短脚本的原因。因此,即使这样,实际上也没有给线程添加任何内容。这对我来说也完美无瑕,谢谢!:)只需对此进行一个调整:对于正确本地化的安装程序,Description:应该类似于
{cm:AssocFileExtension,My App Name,myp}
,它将使用默认的InnoSetup,将“&Associate%1与%2文件扩展名”翻译成安装程序中使用的语言。