NSIS脚本添加可信站点 (1)

通过NSIS脚本向IE添加可信站点,

由于没有现成的windows API可调用,实际情况比较复杂
一、常见情况及其对应注册表位置
(一)IP或域名的几种常见情况
尽管用户输入的URL可能很复杂,但是提取出来的IP或域名有以下几种常见情况

(1)IP
例如
192.168.0.1

(如果非服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range<N>
<N>是一个从1开始的整数
名称:Range        值192.168.0.1
名称*    值0x2

(如果服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\Range<N>
<N>是一个从1开始的整数
名称:Range        值192.168.0.1
名称*    值0x2

(2)一段域名
例如
localhost

(如果非服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\localhost
名称*    值0x2

(如果服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\localhost
名称*    值0x2

(3)两段域名
例如
baidu.com

(如果非服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\baidu.com
名称*    值0x2

(如果服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\baidu.com
名称*    值0x2

(4)三段域名
例如
www.baidu.com

(如果非服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\baidu.com\www
名称*    值0x2

(如果服务器)加到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscRanges\baidu.com\www
名称*    值0x2

(二) IP或域名的特殊情况
about:blank

(三) 输入URL的解析
其实比较复杂,需考虑因素
(1)有无协议头

(2)协议种类
(2.1)常见协议
http://
https://
ftp://

(2.2)特殊协议
file:///

(2.3)特殊写法
ftp://username:password@

(3)有无端口

二、关于64位机器的注册表
64位windows操作系统有32位和64位注册表,建议两个都写

(1)使用命令行,可使用隐形开关/reg:64或/reg:32
reg add … /reg:64
reg add … /reg:32或者reg add

(2)在NSIS里面,可以用以下指令
SetRegView 32
SetRegView 64

三、关于Range<N>的N的判断
由于一般可信站点也不太多,所以可以用最笨的办法
从1开始遍历到MAX_INT,直到该注册表键不存在。

注意:有的脚本语言没有MAX_INT这样的函数,可以用一个较大的整数,例如2的16次方-1,来模拟这样一个整数

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容