实际应用中installshield的事件处理

时间:2021-09-03 19:48:53

比如 创建一个installshield工程之后   intallshield程序 会自动生成程序执行的代码

 

看脚本  生成了一个  function OnFirstUIBefore()   该方法是用于 在安装程序运行期间的

 

所有窗口的代码    你可以随意修改 需要哪些窗口  去掉哪些窗口

 

 

比如现在有这样一个 问题  :

 

 

我需要在 程序安装完后 需要做一些 操作 比如执行批处理啊  拷贝文件等操作  要怎么办了

 

 

首先打开脚本  看见脚本 最上面 有两个下拉框 者玩意就是指定在什么时间 的什么事件的

 

第一个下拉框 就是 什么时间   第二个下拉框是什么事件

 

 

选中左边的move data 选中右边的 OnMoved  代码中就会添加一个onmoved方法  该方法 就是

当安装完 或者卸载完后 要执行的事件

 

比如 添加变量 BOOL isremove; 

 

function OnMoved()
string setupto,cmdline;
string svOld,svNew,szKey;
number nsize,nzType; 
begin        
        if(!isremove) then   
        //设置环境变量
         // SetEnvironment();       
        //执行安装批处理
        ExecuteInstall();
       endif;  
end;     

 

 

局部变量只能在 函数和begin之间定义

isremove定义时默认是false   

  if(!isremove) then    也就是 安装时候  会执行 批处理操作 和设置环境变量的操作

 

 

 

选中 OnMaintUIBefore()

 

这个就是 卸载时候 要调用的代码

 

生成的代码比较多 可以不管他  在   OnMaintUIBefore第一句 加上 isremove=true  就说明是卸载的时候 onmoved里面的语句

就不会被条用

 

 

同时 找到 switch(nType)

        case REMOVEALL:

 

在case REMOVEALL:  后面加上 你卸载时要做的操作

 

比如在卸载完成后  某些日志 不能被卸载掉 

 

可以点击上面的onend会添加代码 调用方法删除目录

 

function OnEnd()
begin
   if(isremove) then
     DeleteDir(TARGETDIR,ALLCONTENTS); 
   endif;
end;