我用VB6.0做的一些程序,如果是带点其它的ActiveX控件或者带的东西多一点的话,用“文件”菜单下的“生成工程1.exe”生成的exe文件在其他的电脑上就没法子用了,必须打包制作成安装程序才可以。    今天,请各位高手同学指点一下,我想把程序(包括图标)打包成一个单exe文件,在其他的Windows系统上,双击直接可以运行,不用经过一步一步的安装,谁知道怎么做的吗?
    
    谢谢高手同学了!!!!

解决方案 »

  1.   

    以前有一个Thinstall软件虚拟化工具可以实现,搜搜吧
      

  2.   

    你说的就是把dll,OCX控件等文件封装在一个EXE文件里是吧。
    听过有这种软件,但是跟做绿色软件没两样。但个软件封装的概念,其实苹果的OS系统早就有了。微软应改进.......
      

  3.   

    http://topic.csdn.net/u/20091010/19/37b0d80f-0810-48c4-9248-16900673ceae.html
    参考我的帖子。
      

  4.   

    在VB6中生成的EXE是可以独立运行的,好像不调用其他控件,不调用API好像就不需要进行封装了吧……
      

  5.   

    1尽量减少对非标准控件的依赖,也就是说尽量只用vb工具箱中默认的控件2如果的确是需要使用第三方控件,尽量找寻这类控件的开源版本,将其以用户控件的方式加入到工程以后,其代码会一起编译到最终的exe文件中,不需要依赖外部的ocx文件3实在是需要依赖外部的ocx或dll,可以考虑吧这些控件以资源文件的形式加入到工程中,然后在sub main()过程的最开始释放出这些文件,并注册,通常情况下都是可以使用的.
      

  6.   

    最快,最稳定,简洁的方法,就是使用 VB.NET 里的程式部署打包项目,非常好用,您先使用VB6对您当前的项目进行打包,完成后就会产生Support目录,然后到.NET 中,新建安装部署项目,程序来源挑选Support目录下所有文件,还可以建立子目录、指定到不同位置的快捷方式等,安装界面中的图片,您可以进行修改,我目前在写ERP系统外挂,都是使用它来进行程序打包发布。 
      

  7.   

    这个问题我也遇到过,虽然没有现成可以直接拿来就用的办法,但是可以简单说一下我的思路:
    我引用一下#9中的3(实在是需要依赖外部的ocx或dll,可以考虑吧这些控件以资源文件的形式加入到工程中,然后在sub main()过程的最开始释放出这些文件,并注册,通常情况下都是可以使用的.)DLL、OCX编程实现自动注册:
    有的DLL不需要注册,就不用说了;
    而有的DLL需要注册,而且手工注册时还有注册成功提示有点麻烦,有没有不提示的办法?肯定有,否则微软的安装包提示个没完没了了;
    OCX一般肯定是需要注册的了;注册命令是这样的:
    regsvr32 /s DllName或OcxName
    这里的 /S 表示不管注册成功与否均不出现前面说的提示框;
    反注册命令加个 /U 就行了。想了解更多在DOS提示符下输入“regsvr32 /?”回车细查;
      

  8.   

    在11楼忘记说了一点,考虑到不知道您是否用VB6调用过外部命令,需要用API函数WinExec 或 SHELLWinExec:
    Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
    call WinExec(你那个注册命令行代码)Shell:
    call Shell(你那个注册命令行代码)
      

  9.   

    用记事本打开.vbp文件
    将其中的dll、ocx以及MSVBVM60.dll一并拷贝到exe所在目录
    然后用WinRAR创建自解压格式压缩文件,在高级、自解压选项中指定解压后运行即可
      

  10.   

    搜索SetupFactory。会自动检查需要的com并打包。
      

  11.   

    用资源文件可以实现
    先把dll放在资源文件里面,再释放出来注册即可。
      

  12.   


    这个不好,图标会失真的
    不如做成资源文件再注册
    方法在这里:
    http://blog.csdn.net/xredhat/archive/2010/02/23/5318220.aspx