【问题标题】:Inno Setup: Extending Windows default apps listInno Setup:扩展 Windows 默认应用程序列表
【发布时间】:2016-07-18 14:54:50
【问题描述】:

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

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

【问题讨论】:

    标签: java windows installation inno-setup


    【解决方案1】:

    有关一般信息,请参阅:

    在 Inno Setup 中,您使用 [Registry] section 实现此功能:

    [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
    

    在 Inno Setup 6 中,你应该修改代码如下支持non-administrative install mode:

    1. 将第一个块中的HKLM 替换为HKA
    2. HKCR 替换为HKA,并将Software\Classes\ 前缀添加到第二个块中的Subkey

    【讨论】:

    • 我遇到了同样的问题,而且效果很好。谢谢!
    猜你喜欢
    • 2012-07-20
    • 2013-03-28
    • 2015-08-31
    • 1970-01-01
    • 2013-03-28
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    相关资源
    最近更新 更多