zoukankan      html  css  js  c++  java
  • 实际应用中installshield的事件处理

    比如 创建一个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;

  • 相关阅读:
    二叉树的遍历
    深度优先遍历和广度优先遍历
    N的阶乘末尾有多少个0
    框架产生的历史
    Ansible--初始ansible
    日积跬步05
    日积跬步04
    日积跬步03
    日积跬步02
    日积跬步01
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331571.html
Copyright © 2011-2022 走看看