问题描述Inno Setup 是一款十分强大的 Windows 安装程序制作软件,可以通过编写并编译 iss 脚本来创建安装包 。之前都是直接将 Pyinstaller 生成的文件夹压缩为 zip 格式来发布,但是这样做存在一些问题 , 比如没有桌面和开始菜单快捷方式,没法关联支持的文件格式 。而通过 Inno Setup 生成的安装包可以帮我们解决这些问题 。
问题解决关联文件格式要想实现关联文件格式的功能 , 我们需要修改注册表,先来观察一下与 mp3 格式相关的注册表格式:
文章插图
可以看到里面有一个名为
WMP11.AssocFile.MP3
, 这个键说明 Win11 的媒体播放器支持 mp3 格式,我们只需在这里面创建一个新的键,比如 Groove.AssocFile.mp3
,就能向系统声明我们的软件也支持mp3 格式 。当我们把光标移到 mp3 文件上时 , 工具提示上会显示一些文件信息,比如项目类型、大小和创建时间,我们同样可以通过操作注册表来修改项目类型信息 。
文章插图
由于我们先前声明的键名是
Groove.AssocFile.mp3
,所以可以在 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes
下新建一个名为 Groove.AssocFile.mp3
的项,并创建一个键名为空 , 键值为 MP3 Audio File
的键值对,这样当我们把 mp3 文件关联到自己的软件上时,工具提示上的项目类型显示的就会是 MP3 Audio File
而非 MP3 文件
。文章插图
接下来在
Groove.AssocFile.mp3
中新建 DefaultIcon
项,新建一个值为 图标文件路径,0
的键值对,这样就能自定义文件图标了 。文章插图
最后当我们双击文件时,系统会通过使用默认的关联程序来打开此文件 。假设我们已经关联了 mp3 文件类型 , 要想让系统使用我们的程序打开这个文件,就需要向系统说明可执行文件的路径,同时这个可执行文件要接受一个被打开的文件路径参数 。只需在
Groove.AssocFile.mp3
下新建 shell\open\command
项 , 添加值为 "可执行文件路径" "%1"
的键值对即可 。【如何在 Inno Setup 中关联多种文件格式】
文章插图
可以在 iss 脚本中添加下述代码来实现上述过程:
#define MyAppAssocName "Groove.AssocFile"[Registry]; .mp3 formatRoot: HKA; Subkey: "Software\Classes\.mp3\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocName}.mp3"; ValueData: ""; Flags: uninsdeletevalueRoot: HKA; Subkey: "Software\Classes\{#MyAppAssocName}.mp3"; ValueType: string; ValueName: ""; ValueData: "MP3 Audio File"; Flags: uninsdeletekeyRoot: HKA; Subkey: "Software\Classes\{#MyAppAssocName}.mp3\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyFileExtensionIcon},0"Root: HKA; Subkey: "Software\Classes\{#MyAppAssocName}.mp3\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""
如果想要添加更多的关联文件格式 , 只需重复 [Registry]
中 mp3
的写法即可,比如关联 flac
格式:; .flac formatRoot: HKA; Subkey: "Software\Classes\.flac\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocName}.flac"; ValueData: ""; Flags: uninsdeletevalueRoot: HKA; Subkey: "Software\Classes\{#MyAppAssocName}.flac"; ValueType: string; ValueName: ""; ValueData: "Free Lossless Audio Codec File"; Flags: uninsdeletekeyRoot: HKA; Subkey: "Software\Classes\{#MyAppAssocName}.flac\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyFileExtensionIcon},0"Root: HKA; Subkey: "Software\Classes\{#MyAppAssocName}.flac\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
修改打开方式菜单中的名字如果只完成了上述步骤,会发现打开方式菜单中显示的是可执行文件的文件名 , 比如 Groove.exe
,如果想改为下图所示的 Groove Music Player
,仍需要修改注册表 。文章插图
在
可执行文件名.exe
项中添加键名为 FriendlyAppName
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- iphone如何设置自定义铃声
- 最新版的itunes怎么设置铃声(itunes如何添加铃声库)
- 如何下载PS软件(ps一定要付费吗)
- 小小收纳童话小屋是如何通关
- or、and表达式
- 英雄杀怎么和好友一起玩(英雄杀如何跟好友组队玩)
- 10 天龙八部游戏工作室是如何赚钱的(天龙八部单机游戏商人攻略)
- DLL文件如何打开(dll文件编辑软件)
- 像DNF与梦幻这样的游戏工作室是如何赚钱的
- Mysql InnoDB Redo log