我想了一下下面的几种方法:(都是自升级就是在a.exe中调用升级)
1.A.exe 升级下载了B.exe(b.exe就是a.exe的升级版本), 如何把b.exe变成a.exe,在什么时机。(a.exe正在运行)
2.在a.exe运行时该a.exe的名字,下载下来的就是a.exe, 什么时候把改了名字的a.exe删除。
3.好像还要自删除的程序也可以码???

解决方案 »

  1.   

    自动升级的办法,当a应用程序检测到新版本以后,运行另一个b进程,并且结束当前a进程然后用另一个b进程升级你的应用程序,这时就什么文件都是可以改变的,包括a进程等升级完了,再用b进程运行a进程,关掉b进程就可以了
      

  2.   

    2.在a.exe运行时该a.exe的名字,下载下来的就是a.exe, 什么时候把改了名字的a.exe删除。LZ也太不实际了吧在a.exe运行时,怎么能改动他的名字咧支持小鱼儿的方法
      

  3.   

    目前各大软件在版本升级的处理上,要么是连接到官方网站,通过B/S结构下载最新文件(如EditPlus),
    要么通过调用类似LiveUpdate.exe的进程来升级软件,如(QQ,Wom等等)
    要么直接在主程序更新,不过更新的是组件,数据文件等等,如(一些杀毒软件的病毒库更新)
      

  4.   

    Stefine(混来D五个裤叉,反思&努力ing) ( ) 信誉:100 
    --------------------------------------
    在运行时可以改自己的名字,以前我听说过,刚才我试验了以下,没有问题可以。#include "stdafx.h"
    #include "afxwin.h"int main(int argc, char* argv[])
    {
    if(argc != 1)
    {
    return -1;
    }
    char szNewName[] = "D:\\real_test\\TestApp060727\\Debug\\a.exe";
    try
    {
    CFile::Rename( argv[0], szNewName );
    }
    catch(CFileException* pEx )
    {
    #ifdef _DEBUG
    afxDump << "File " << argv[0] << " not found, cause = ";
    //            << e->m_cause << "\n";
    #endif
    pEx->Delete();
    } printf("Hello World!\n");
    exit(0);
    return 0;
    }
      

  5.   

    太简单拉,你的程序就是个dll,然后exe就是个launcher,明白了吧?
      

  6.   

    太简单拉,你的程序就是个dll,然后exe就是个launcher,明白了吧?--------------------------------------------------------
    不知所云。
      

  7.   

    程序运行其实是把所需资源载入内存空间,不是必须硬盘资料支持的
    a.exe下载b.exe后,运行b.exe,a自删除,b拷贝自身成a.exe
    自己查下,可以找到自删除和复制自身的汇编代码