近来有朋友问,ArcGIS Engine程序打包时如何能保证RUNTIME License的安全,也就是说Runtime 许可文件不会被任意传播。
偶把以前的InstallShield安装脚本修改了下,觉得下面的方法还是比较适合的。
第一步:打包应用程序文件
把Runtime许可文件改个名字(包括后缀,如tmp11.old),然后和应用程序打包在一起,安装时释放到系统目录中;
第二步:先安装应用程序SETUP文件(这样可以先把Runtime文件释放出来);
第三步:安装Runtime Setup,安装SP补丁 Setup;
第四步:注册Runtime 许可文件(注:这是关键的一步)
strLicenseFile=WINDIR+"\system32\tmp11.old"; //定义Runtime许可文件位置
spDir="c:\\EngineRuntime\Runtime\\SoftwareAuthorization.exe -s -lif"; //定义注册应用程序位置 ,-S表示不显示注册界面,-lif表示选择注册文件
szCmdLine = spDir + " " + strLicenseFile;
if (LaunchAppAndWait ("",szCmdLine,WAIT) <0 ) then
MessageBox ("运行文件注册失败",INFORMATION);
else
DeleteFile (strLicenseFile); //删除注册许可文件
endif;
通过这样的方法,可以使安装用户不知觉的情况下完成许可文件的注册,在一定程度上保障了许可文件不会被轻松地获取到。