最新消息:

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

nsis 永恒心锁 1112浏览 0评论

四、NSIS脚本还是其他脚本

由于解析用户输入的URL需要用到正则表达式
但是NSIS脚本似乎不支持正则表达式,
当然这里不太肯定,是不是我没找到有关库?
所以就需要调用其他的脚本或者程序。

(1) 可选方案–C#
在stackoverflow找到一个主题,讨论通过程序添加可信站点
http://stackoverflow.com/questions/972345/programmatically-add-trusted-sites-to-internet-explorer
其中Nelvin kay 综合了前几个人的C#代码,可以将IP或域名加入可信站点,
不解析区分具体协议,而是直接设定为所有协议(*),
虽然不够精细,但是对我已经够用

在win7x64编译运行验证后可以工作。
因此将此代码作为基准,进行后续的完善,

它存在的问题,没有考虑
(a)服务器需要写到EscRanges以及EscDomains,
(b) 没有考虑64位注册表
(c) 最大问题其实是安装比较麻烦

我打了一个带.dotnet4.0的安装包,到win2003 x64机器试验了一下,
发现.dotnet4.0安装时报错:

产生阻滞的问题:
运行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)。请访问 <A HREF=”http://go.microsoft.com/fwlink/?LinkId=162643&clcid=0x409″>Microsoft 下载中心</A>,安装 WIC,然后重新运行此安装程序。

由于安装看起来很麻烦,感觉没必要为了一个小功能,让用户安装一大堆东西,所以决定放弃C#

(2) 可选方案–Javascript

Javascript在功能上很强大,通过WScript,
(a)既支持正则表达式
(b)也支持执行批处理命令

但是对于它能否脱离浏览器单独运行,特别是是否有运行权限,不是十分肯定
而时间有限,无法深究此问题

题外话:调研过程中,发现了Node.js,可以在服务器端脱离浏览器执行javascript脚本,但是觉得本次应该用不到。

(3) 可选方案–VBScript
这个语言功能有点硬伤,就是没有MAX_INTEGER这样的函数
好处是,这是经过验证的做法,
因为之前用NSIS脚本调用过VBScript,即使没有获得最高权限,也没有遇到什么权限方面的问题
所以决定还是用VBScript

永恒心锁,版权所有丨如未注明,均为转载丨本网站采用BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » NSIS脚本添加可信站点 (2)

您必须 登录 才能发表评论!