Inno Setup 脚本添加关联文件格式,以PDF格式演示

  1. 定义 PDF 相关的常量
    在脚本开头的定义部分,添加以下用于 PDF 文件关联的常量定义:

    #define MyAppPDFAssocName MyAppName + " PDF"
    #define MyAppPDFAssocExt ".pdf"
    #define MyAppPDFAssocKey StringChange(MyAppPDFAssocName, " ", "") + MyAppPDFAssocExt
  2. 在 [Types] 节注册 PDF 文件类型
    添加以下内容到 [Types] 节,用于注册 PDF 文件类型:

    [Types]
    Name: "MyAppPDFFileType"; Description: "ABBYY FineReader PDF File Type"; Extensions: ".pdf"
  3. 设置 PDF 文件类型的默认图标(可选,假设沿用程序图标)
    如果希望为 PDF 文件类型设置特定图标(这里假设沿用程序本身的图标),可在 [Icons] 节添加如下内容:

    [Icons]
    Name: "{autopf}\MyAppPDFFileType"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\{#MyAppExeName}"; IconIndex: 0
  4. 在 [Registry] 节关联 PDF 文件类型与程序操作
    添加以下代码到 [Registry] 节,以实现当双击 PDF 文件时能正确调用你的程序执行相应操作:

    
    [Registry]
    ; 将.pdf扩展名与定义的文件类型关联起来,卸载时删除该键
    Root: HKCR; Subkey: ".pdf"; ValueType: string; ValueName: ""; ValueData: "MyAppPDFFileType"; Flags: uninsdeletekey

; 设置文件类型的默认图标路径及索引,卸载时删除该值
Root: HKCR; Subkey: "MyAppPDFFileType"; ValueType: string; ValueName: "DefaultIcon"; ValueData: "{app}{#MyAppExeName},0"; Flags: uninsdeletevalue

; 设置当用户选择“打开”操作时要执行的命令,传递双击的PDF文件路径给程序
Root: HKCR; Subkey: "MyAppPDFFileType\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}{#MyAppExeName}"" ""%1"""; Flags: uninsdeletekey