没有办法,因为在执行的程序.exe文件是写保护的!
除非你在程序的最后启动一个新的程序,而新程序是要删除这个程序的!

解决方案 »

  1.   

    可以的,有这样的例子,基本原理是建一个新的进程(CreateProcess),关闭原进程,在删掉文件。
      

  2.   

    不知道你的这个程序复杂度如何?在MSDN中查找tdelexe,你会找到一个让运行中的程序删除自己的办法。有三种方法:
    1、启动后删除(不符合你的要求)
    2、用Bat文件删除,需要等待程序结束(不符合你的要求)
    3、把删除代码拷贝到堆内存空间,然后FreeLibrary(本EXE),然后删除,但是不能在NT下使用(这个方法也许可以符合你的需要,不过,你的程序编写就需要很大的技巧,可能很多功能也不能够使用了)附:你想做病毒吗?最原始的办法就是直接写硬盘了(回到DOS年代了),不知道有没有办法在98/NT下实现。