想给程序添加一个更新后停止当前进程然后用新版本的程序文件替换当前的旧版本文件,再运行,请问这种要怎么搞呢?

解决方案 »

  1.   

    可以让程序写一个bat,然后运行bat,自己结束进程。bat里的代码是删除旧的程序,复制新的程序到旧的位置
      

  2.   

    对了,bat中最后加上 del XX.bat,它是可以删除自己的
      

  3.   


    但是bat会闪出一个黑框框来,可以不让他闪吗?
      

  4.   

    一般自动更新程序都做成一个独立的exe
    就是为了如果更新主程序的话可以将其杀掉
      

  5.   


    比较赞同此观点LZk而已看看很多程序的目录里面,都有一个update.exe
      

  6.   


    但是我的这个程序是个小程序,只有一个EXE,不想放太多东西。
    用bat文件应该是可以,但是用CreateProcess打开bat后,bat运行时将进程kill掉,bat也会跟着退出了。
    怎么样让CreateProcess创建出来的进程与当前进程没有父子关系呢?
      

  7.   

    那用VBS脚本吧
    你可以在程序中创建这个脚本
    然后调用这个脚本
    并且脚本支持删除自身
    set fso = createobject("scripting.filesystemobject")
    fso.deleteFile"yourapp.exe"
    fso.deleteFile"self.vbs"