Inno Setup:扩展 Windows 默认应用程序列表

Vmx*_*xes 6 java windows installation inno-setup

如何将我的应用程序列在 Windows 默认应用程序列表中?

我有一个特殊的基于 Java 的视频播放器应用程序,其中包含一个由 Inno Setup 创建的安装程序。我希望我的应用程序列在 Windows 10 上的可选视频播放器列表中(我也不知道如何使用较旧的 Windows 版本执行此操作)。

Mar*_*ryl 5

有关一般信息,请参阅:

在 Inno Setup 中,您可以使用[Registry]以下部分来实现此操作:

[Registry]
; Create the application capability key
; (The location of the key does not matter)
Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\My Company\My Program\Capability"; \
    ValueType: string; ValueName: "ApplicationDescription"; \
    ValueData: "This is My Program that does stuff"; Flags: uninsdeletevalue
Root: HKLM; Subkey: "Software\My Company\My Program\Capability"; \
    ValueType: string; ValueName: "ApplicationName"; ValueData: "My Program"; \
    Flags: uninsdeletevalue
; List of extensions the application supports
Root: HKLM; \
    Subkey: "Software\My Company\My Program\Capability\FileAssociations"; \
    ValueType: string; ValueName: ".jpg"; ValueData: "MyProgram.JPEG"; \
    Flags: uninsdeletevalue

; Add the capability key to list of registered applications
Root: HKLM; Subkey: "Software\RegisteredApplications"; \
    ValueType: string; ValueName: "My Program"; \
    ValueData: "Software\My Company\My Program\Capability"; \
    Flags: uninsdeletevalue

; For each extension that the application supports
Root: HKCR; Subkey: "MyProgram.JPEG"; Flags: uninsdeletekeyifempty
Root: HKCR; Subkey: "MyProgram.JPEG"; \
    ValueType: string; ValueName: ""; ValueData: "MyProgram JPEG"; \
    Flags: uninsdeletevalue
Root: HKCR; Subkey: "MyProgram.JPEG\DefaultIcon"; Flags: uninsdeletekeyifempty
Root: HKCR; Subkey: "MyProgram.JPEG\DefaultIcon"; \
    ValueType: string; ValueName: ""; ValueData: "{app}\MyProg.exe,1"; \
    Flags: uninsdeletevalue
Root: HKCR; Subkey: "MyProgram.JPEG\Shell"; Flags: uninsdeletekeyifempty
Root: HKCR; Subkey: "MyProgram.JPEG\Shell\open"; Flags: uninsdeletekeyifempty
Root: HKCR; Subkey: "MyProgram.JPEG\Shell\open\Command"; \
    Flags: uninsdeletekeyifempty
Root: HKCR; Subkey: "MyProgram.JPEG\Shell\open\Command"; \
    ValueType: string; ValueName: ""; ValueData: """{app}\MyProg.exe"" ""%1"""; \
    Flags: uninsdeletevalue
Run Code Online (Sandbox Code Playgroud)

在Inno Setup 6中,您应该修改代码如下以支持非管理安装模式

  1. HKLM将第一个块替换为HKA;
  2. 替换HKCRHKA并在第二个块中添加Software\Classes\前缀Subkey

设置默认程序

设置程序关联