InstallShield用法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 07:29   11   0

一、拷贝文件

if(XCopyFile(SUPPORTDIR^"文件.dll",WINDIR^"system\\文件.dll",COMP_NORMAL|SELFREGISTER)<0) then

MessageBox("拷贝文件出错!",WARNING);

endif;


二、注册表

RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );

//判断存在

if (RegDBKeyExist ("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5")<0) then
LaunchAppAndWait (SRCDISK^"supportFiles\\dotnetfx35.exe","/q:a /c", LAAW_OPTION_WAIT);
endif;

//取值 放入szValue

RegDBGetKeyValueEx("SOFTWARE\\ESRI\\ArcGIS Engine Runtime","MainDir",nType,szValue,nSize);


三、隐藏安装文件复制界面

OnMoving函数中编写一行代码:Disable(STATUSOLD)


四、检测磁盘空间是否足够于安装
当安装包非常大时,我们通常要考虑目标计算机的执行磁盘分区是否有足够的空间来顺利完成安装,在这里可以通过GetDisk (szDir, svDrive)、GetDiskSpace (svDrive)函数进行粗略的估算,如下:
GetDisk (szDir, svDrive);
lFreeSpace = GetDiskSpace (svDrive);
if (lFreeSpace < 314572800) then
MessageBoxEx("警告:本安装所需磁盘空间最低约为300M,安装路径所在的磁盘空间不足!请重新选择!","警告",WARNING);
goto Dlg_SdAskDestPath;
endif;
上述代码一般放到OnFirstUIBefore函数的Dlg_SdAskDestPath中。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP