首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

exe运行后怎样删除自身解决方案

2012-03-26 
exe运行后怎样删除自身如下的1.exe:#include stdio.h#include stdlib.hmain(){system(start notepad.exe

exe运行后怎样删除自身
如下的1.exe:
#include stdio.h
#include stdlib.h
main()
{
system("start notepad.exe");
}
要想1.exe运行后删除自身,在后面加上
system("del /f /q 1.exe");
但我试过几遍都不行,起初我以为是路径的问题;但改成了system("del /f /q 1.*");都不行,所有的文件名为1的文件都被删除了,就是1.exe还在!!!
1.bat却很好做到:
echo off
start notepad.exe
del /f /q 1.bat
这是为什么呢,难道EXE在运行,不能删除自身?
但为什么灰鸽子、木马等软件一双击就没了?


希望高手指教! 最好是不要生存临时的bat文件,删除1.exe再结束bat……

  ……………………………… ……………………………………



[解决办法]
当然,还可以改进.
#include <windows.h>
#include <fstream>
using namespace std;

int main()
{
ofstream file;
file.open("1.bat");
file<<"del 1.exe"<<endl;
file<<"del 1.bat"<<endl;
file.close();
ShellExecute(NULL,"open","1.bat","",NULL,SW_SHOWNORMAL);
}
[解决办法]
bat里面如果想删除自身,最好别把文件名写死了,这样既可:

BatchFile code
del /f /q /a "%~f0" 

热点排行