之前,没怎么用过installshield
只仅仅稍微的看得懂点而已。
所以,在制作时,遇到了些问题,不知如何解决第一:用installshield制作的安装盘,第一次执行,时安装,第二次执行,为卸载我得问题是:   在第一次执行安装后,这期间对注册表进行了写操作,比如,要myDBname="myDB"(myDBname的原值为""空)   想在第二次执行安装,进行卸载的同时,能把注册表中修改的值,修改回原值(即:myDBname="")。-------------------------
我是在OnMoving中执行的,将修改的值,改回原值。(myDBname="")但是,OnMoving这个函数在第一次执行安装的时候,也执行了。所以在安装的时候,myDBname就已经为空了
---------------------
我得问题是:在第二次执行卸载的时候,如何修改注册表里的值

解决方案 »

  1.   

    现在手里没 IS, 但是我记得有响应安装/删除某个 feature ( is6 称为 component) 的事件
      

  2.   

    1.3.1   OnFirstUIAfter在第一次安装时,在复制安装数据之后触发的事件,例如有一个系统需要将安装路径设置FTP虚拟目录,如果在安装数据之前就设置的话,该路径不存在,无法设置成功,因此需要在这个事件中设置。1.3.2   OnMaintUIAfter在修改或卸载时,在修改或卸载数据之后触发的事件;
    网上找的,可能有问题,但是大体思路是这样:OnFirstUIAfter处理你的写注册表,OnMaintUIAfter处理还原注册表,自己可以看一下IS的帮助
      

  3.   

    to LS:   我发现一个奇怪的问题:       我在OnFirstUIBefore函数中 , 在注册表里添加一些注册表项,并赋值,还对注册表中原来有的项       的值,进行了赋新值,比如对   Software\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon下userinit项的值进行了修改。
    然后,我想在第二次执行安装包,即卸载的时候,对userinit项的值进行还原,即,赋予先前的值       然后,先是再OnMoving函数中,对userinit的值进行了还原,然后又在OnMaintUIAfter函数中也进行还原,发现第二次执行后,即卸载后,安装程序会把userinit项删除
    ===========
    我只想对这个userinit进行还原值
      

  4.   

    就算不添加任何在卸载的脚步,安装盘文件也回,帮你删除所有你修改的,添加的,复制的文件
    我在想,卸载时,installshield制作的安装盘程序,到底执行了什么函数?
    还有,这个安装程序,怎么知道它所有的动作,比如,它在卸载时怎么知道,我新添加了什么