zoukankan      html  css  js  c++  java
  • Inno Setup入门(十)——操作注册表 & 自启程序

    http://379910987.blog.163.com/blog/static/3352379720110259414788/

    有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过在安装程序中对注册表进行操作的结果。Inno Setup中通过[registry]段实现对注册表的操作。

    本段说明:

    参数列表:

    参数

    说明

    Root

    根键。必须是下列中的一个:

    HKCR (HKEY_CLASSES_ROOT)

    HKCU (HKEY_CURRENT_USER)

    HKLM (HKEY_LOCAL_MACHINE)

    HKU (HKEY_USERS)

    HKCC (HKEY_CURRENT_CONFIG)

    Subkey

    子键名,可以包含常量

    ValueType

    值类型,必须是下列中的一个:

    none

    string

    expandsz

    multisz

    dword

    binary

    如果指定了none (默认设置),安装程序将创建一个没有键值的键,在这种情况下,ValueName ValueData 参数将被忽略。

    ValueName

    要创建的值名,可以包含常量,如果是空白的,将写入到“默认”值

    ValueData

    值的数据

    Permissions

    指定登录注册表键ACL (访问控制列表) 的附加权限,该参数只在Windows 2000 或更高版本中有效,可用的参数是full、modify和read

    Flags

    是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:

    createvalueifdoesntexist

    deletekey

    deletevalue

    dontcreatekey

    noerror

    preservestringtype

    uninsclearvalue

    uninsdeletekey

    uninsdeletekeyifempty

    uninsdeletevalue

    下面的例子将会使得安装程序在操作系统启动后自动运行。

    [setup]

    ;全局设置,本段必须

    AppName=Test

    AppVerName=TEST

    DefaultDirName="E:TEST"

    AppVersion=1.0

    Compression=lzma2/max

    ShowLanguageDialog=yes

     

    [components]

    Name: main; Description:"主程序(必选)";Types:full compact custom;Flags: fixed

    Name: data; Description:"数据文件";Types:full

    Name: help;Description:"帮助文件";Types:full compact

     

    [files]

    Source: "F:desktop estipmsg.exe"; DestDir: "{app}";Components:main

    Source: "F:desktop estin.dat"; DestDir: "{app}";Components:data

    Source: "F:desktop esthelp.chm"; DestDir: "{app}" ;Components:help

    Source: "F:desktop est eadme.txt"; DestDir: "{app}";components:help;Flags:isreadme

    [registry]

    ;本段处理程序在注册表中的键值

    Root:HKLM;Subkey:SOFTWAREMicrosoftWindowsCurrentVersionRun;ValueType: string; ValueName:TEST;ValueData:{app}ipmsg.exe;Flags: uninsdeletevalue

    一路Next到底,安装完成后可以检查注册表:

    Inno Setup入门(十)——操作注册表 - Castor - 趁年轻,多折腾~~

     确实添加到注册表中去了,通过金山卫士也证实了这一点:

    Inno Setup入门(十)——操作注册表 - Castor - 趁年轻,多折腾~~

        由于使用的标志位是uninsdeletevalue,所以卸载软件将会自动删除该值,如果使用uninsdeletekey的话,该键下的其他值都会被删除,这不是一个很好的方法,除非你确定使用的是自己的专用键,否则不推荐使用。

    有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过在安装程序中对注册表进行操作的结果。Inno Setup中通过[registry]段实现对注册表的操作。

    本段说明:

    参数列表:

    参数

    说明

    Root

    根键。必须是下列中的一个:

    HKCR (HKEY_CLASSES_ROOT)

    HKCU (HKEY_CURRENT_USER)

    HKLM (HKEY_LOCAL_MACHINE)

    HKU (HKEY_USERS)

    HKCC (HKEY_CURRENT_CONFIG)

    Subkey

    子键名,可以包含常量

    ValueType

    值类型,必须是下列中的一个:

    none

    string

    expandsz

    multisz

    dword

    binary

    如果指定了none (默认设置),安装程序将创建一个没有键值的键,在这种情况下,ValueName ValueData 参数将被忽略。

    ValueName

    要创建的值名,可以包含常量,如果是空白的,将写入到“默认”值

    ValueData

    值的数据

    Permissions

    指定登录注册表键ACL (访问控制列表) 的附加权限,该参数只在Windows 2000 或更高版本中有效,可用的参数是full、modify和read

    Flags

    是额外选项设置。多个选项可以使用空格隔开。支持下面的选项:

    createvalueifdoesntexist

    deletekey

    deletevalue

    dontcreatekey

    noerror

    preservestringtype

    uninsclearvalue

    uninsdeletekey

    uninsdeletekeyifempty

    uninsdeletevalue

    下面的例子将会使得安装程序在操作系统启动后自动运行。

    [setup]

    ;全局设置,本段必须

    AppName=Test

    AppVerName=TEST

    DefaultDirName="E:TEST"

    AppVersion=1.0

    Compression=lzma2/max

    ShowLanguageDialog=yes

     

    [components]

    Name: main; Description:"主程序(必选)";Types:full compact custom;Flags: fixed

    Name: data; Description:"数据文件";Types:full

    Name: help;Description:"帮助文件";Types:full compact

     

    [files]

    Source: "F:desktop estipmsg.exe"; DestDir: "{app}";Components:main

    Source: "F:desktop estin.dat"; DestDir: "{app}";Components:data

    Source: "F:desktop esthelp.chm"; DestDir: "{app}" ;Components:help

    Source: "F:desktop est eadme.txt"; DestDir: "{app}";components:help;Flags:isreadme

    [registry]

    ;本段处理程序在注册表中的键值

    Root:HKLM;Subkey:SOFTWAREMicrosoftWindowsCurrentVersionRun;ValueType: string; ValueName:TEST;ValueData:{app}ipmsg.exe;Flags: uninsdeletevalue

    一路Next到底,安装完成后可以检查注册表:

    Inno Setup入门(十)——操作注册表 - Castor - 趁年轻,多折腾~~

     确实添加到注册表中去了,通过金山卫士也证实了这一点:

    Inno Setup入门(十)——操作注册表 - Castor - 趁年轻,多折腾~~

        由于使用的标志位是uninsdeletevalue,所以卸载软件将会自动删除该值,如果使用uninsdeletekey的话,该键下的其他值都会被删除,这不是一个很好的方法,除非你确定使用的是自己的专用键,否则不推荐使用。

  • 相关阅读:
    责任链模式(Chain of Responsibility)
    模板模式(Template Method)
    组合模式(Composite Pattern)
    原型模式(Prototype Pattern)
    策略模式(Strategy Pattern)
    状态模式(State Pattern)
    增删改查
    安卓sql
    安卓第三次作业
    安卓第四周作业
  • 原文地址:https://www.cnblogs.com/okgogo2000/p/4679435.html
Copyright © 2011-2022 走看看