我要在安装程序启动之前检测一下系统,intallshield貌似不提供有这样方便的功能,于是写个DLL让它调用,这回问题来了,我的DLL是外部的,在拷贝文件前就要调用,这怎么实现呢?能不能作为installshield的某种资源,让他在安装程序的EXE中?

解决方案 »

  1.   

    为什么说安装程序启动之前没检测系统?要不然安装、卸载、维护等界面怎么自动出来?IS做的安装包都能自动检测已安装的组件,MSI有自己的检测方式,IS脚本也有自己的检测方式,不知道你做的安装包是哪种类型。安装包运行时调用外部DLL的前提是DLL已经被安装了,或者DLL在安装源中,或者DLL已经从压缩的安装包中解压到了临时目录,这些在创建安装包时都是可以配置的。
      

  2.   

    实际上我是要检测 某些进程是否还残留系统中,FindWindow不奏效,installshield可以实现这个功能不?可以的话懒得调用DLL了,我是找不到好方法才调用DLL的
      

  3.   

    可以先把DLL拷贝到Temp目录,然后调用...很多安装程序都这么做
      

  4.   

    在脚本里面不是可以调用吗实现function OnFirstUIBefore()事件,调用你的动态库检测系统
      

  5.   

    is可以检测某个EXE/DLL是否正在使用,具体做法忘了,但我记得is的帮助上写着方法。
      

  6.   

    楼上的, OnFirstUIBefore里怎么调用我的DLL? 我的DLL还没拷贝过去啊
      

  7.   

    to oyljerry : 这个怎么实现呢?怎么从安装包EXE里把自己的DLL拷贝到某个目录?调用那个函数?to jameshooo : 找找看哈
      

  8.   


    可以调用InstallShield的内部函数Is(FILE_LOCKED, szAppName) 判断szAppName程序是否正在运行
      

  9.   

    szAppName 只是EXE的名字而不是全路径?我试试看