最近在用inno setup制作一个安装程序,主程序 .exe文件倒是好做,只是在 安装向导页 的   用户阅读协议(pageID为wpLicense)       后 要增加几个页面,来添加一个文件夹到用户的电脑上去,拷完后还要执行一个批处理文件。因我学的是java,inno setup【code】段  所用的脚本是pascal,网上有一些资料,但都是重复的,最近看了几天也没什么头绪,确实郁闷。望大哥能帮小弟这个忙.小弟感激不禁!
需要增加的页面如下:
当用户“同一协议信息”时,点击“下一步”出现这样的页面:在向导页(1)提示用户是否已安装AAA文件夹,  该页右下角有3个按钮  :1已安装 ; 2未安装    3取消当点击“已安装”时,向导页(2)有个‘浏览’的按钮,让用户选择已安装AAA文件夹的路径,该页右下角有两个按钮  1上一步 2下一步     3取消;     当用户选择下一步时,向导页(3)中把AAA_sub拷贝到AAA目录下,此页有“下一步@按钮”和“取消按钮”当点击“未安装”时,向导页(2)变成   把AAA文件夹安装的位置,该页右下角有两个按钮  1上一步 2下一步 3取消
;  当用户选择下一步时   ;向导页(3)中把AAA拷贝到用户指定的目录下,此页 有“下一步@按钮”和“取消按钮”所有的“取消按钮”都是退出安装程序。当点击“下一步@按钮”进入的 先前的  主程序 .exe文件安装向导页。

解决方案 »

  1.   

    看不懂,不需要判断程序是否已安装;InnoSetup会自动找到原先安装的目录
      

  2.   

    不是的,我要装的那个AAA文件夹是在 主程序的那个 .exe 安装之前 在安装向导页中选择安装的,若用户有AAA文件夹,只把AAA_sub拷贝到用户的AAA文件夹下,若没有,让用户选择一个位置,把AAA文件夹拷到用户的机子上。
      

  3.   

    一般这种情况下可以弹出自己设计的Form,这样的例子在Inno的Sample里面有一个小例子你可以参考。
      

  4.   

    楼上的那位大哥,我 就是像让他弹出一个Tsetupform,在里面让用户选择目录,以把AAA放到用户选定的目录,关键是怎么把这个AAA文件夹打包到setup安装程序里面 ,以及用户选择“确定按钮“之后,就把文件夹拷贝到指定的位置。
      

  5.   

    打包AAA就放在[Files]段里面,先安装到{app}下面,然后找时间复制到用户选定的位置。
      

  6.   

    由于[Files]段里面的文件很晚才会安装到{app},所以一定要注意你开始复制的时候AAA是不是已经在{app}里面了。
      

  7.   

      那AAA文件是和主程序一起安装的,不是在单击”确定按钮“后开始拷贝到用户的系统中的?
    有没有什么办法可以在单击”确定按钮“后就copy到用户的电脑中。
      

  8.   

    InstallAware有File Bag方式可以做到,Inno似乎没有很好的办法。可以把这一页放在最后面做吗?那样做起来方便得多。
      

  9.   

     我也觉得那样可以,但是不符合客户的要求。我的那个程序前面是个java web应用,后面是一个c++可执行程序。我要在c++可执行程序前 先把那个web应用拷贝到用户机子上,再做个批处理把web应用启动起来。安装完成后,就已经启动了web应用  和 可运行  可执行程序。大哥,  你看还可以怎么做吗?
      

  10.   

    我的意思是你先一切按照安装C++程序的步骤做好,然后在C++安装过程中将AAA内容一并安装到C++的{app}里面。然后在C++部分安装基本结束后,在[Code]段加入安装Web应用的代码,这样我给你说的方式——从{app}里面复制文件到用户选择的地方就是可以顺利执行的啦。我就是这个意思,先装好C++,再来装Java。并不是做两个安装包,而是一个安装包。我做C#安装包的时候就是这样,先把我的C#程序装好,再来安装一些DLL到系统全局的GAC。
      

  11.   

      其实是一个分步安装的过程 ,第一步 把 文件夹AAA拷到某个地方 。这是必须先要做的。没办法。我其实 是想怎么能  把 文件夹AAA 存储  在innosetup脚本中。当选择一个位置时,把它拷到该地方。
      

  12.   

    我的意思也很明显,直接写在[Files]里面,先安装到C++那边去,然后在[Code]段把这些文件从{app}复制到你想复制到的位置。