用NextInstaller实现针对不同的操作系统设置不同的注册表

来源:互联网 发布:淘宝卖家客户端 编辑:程序博客网 时间:2024/06/08 14:06

在软件在安装过程中我们常要对不同的操作系统设置不同的注册表信息,如我们要在软件的安装过程中自动关闭XP自带的防火墙,这时,我们的setup 就要自动进行判断,当前系统是不是XP ,如果是则就在注册表中写入:

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy]

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile]
"DoNotAllowExceptions"=dword:00000000

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile/AuthorizedApplications]

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile/AuthorizedApplications/List]
"C://ActiveSoft//AmServer//AMS.EXE"="C://ActiveSoft//AmServer//AMS.EXE:*:Enabled:AMS.EXE"

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile/GloballyOpenPorts]

[HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile/GloballyOpenPorts/List]
"5001:TCP"="5001:TCP:*:Enabled:AMS5001"
系统就会针对XP 自动关闭 防火墙

在InstallAide(NextInstaller) 中q我们可以很方便的实现这一点

只要独立新建一个 RegObj ,然后设置数据, 针对其中的数据我们可以用变量来实现, 如变量名为:[PATH_S_TARGETDIR]/AMS.EXE 值为:[PATH_S_TARGETDIR]/AMS.EXE:*:Enabled:AMS.EXE

接下来最重要的一点就是如何让它只在xp 系统中进和设置,方法很简单,只要在当前RegObj 对象的 OS 属性中选中 Windows XP 就可以了

 

原创粉丝点击