论坛上一网友出的,原帖: 请问大家如何编一个一发现D盘的exe文件就自动删除的程序??做这个东西不是为了破坏,而是为了学校机房的安全,不让学生在下面搞破坏,本人对编程一无所知,哪位好心人士能提供代码或者程序.谢谢 /* 自己以前写过类似的程序,所以发了十几分钟写了个基本上满足LZ 需要的程序.但是真正用于机房还差点,首先应该有个计时器,隔段 时间扫描一遍D盘而不是不停的扫描,其次应该驻留在内存自动运行 而不是放在谁都可以关闭它的地方。不过要我实现所有的这些功能 呵呵…… 总要意思一下吧 ! 运行该程序D盘下的所有系统文件,系统目录以及隐藏文件,隐藏目录 只读文件,只读目录会被修改。 注意请在调试时创建临时目录,否则如果D盘下的所有.exe文件被删 除与作者无关 ,使用该程序造成的一切损失与作者无关 。 正常退出该程序请输入 e 编译环境 VC++6.0*/#include <stdio.h>#include <io.h>#include <string.h>#include <direct.h>#include <conio.h>#include <stdlib.h>#define FILE_ATTRIBUTE_DIRECTORY 0x00000010#define FILE_ATTRIBUTE_FILE 0x00000020void DeleteFile(char *fname){ char *p; // 如果是.exe文件则删除 p = strstr(fname,".exe"); if((size_t)(p - fname ) == strlen(fname) - 4){ printf("找到匹配文件 %s\n",fname); if(remove(fname)) printf("文件: %s 删除失败 !\n",fname); else printf("删除文件: %s 完成\n",fname); }}char cmd[_MAX_PATH];void MyDeleteFile(){ struct _finddata_t FileInfo; long lHandle = 0L; if((lHandle = _findfirst("*",&FileInfo)) == -1L){ _findclose(lHandle); return ; } do{ // 去除隐藏,系统,只读 属性 sprintf(cmd,"attrib -s -r -h %s",FileInfo.name); system(cmd); if( FileInfo.attrib == FILE_ATTRIBUTE_FILE) DeleteFile(FileInfo.name); else if(FileInfo.attrib == FILE_ATTRIBUTE_DIRECTORY){ if( FileInfo.name[0] != '.') { _chdir(FileInfo.name); MyDeleteFile(); _chdir(".."); } } }while(!_findnext(lHandle,&FileInfo)); _findclose(lHandle); }int main(){ if(_chdir("d:\\")) exit(1); while(1){ while(!kbhit()) MyDeleteFile(); if(getch() == 'e') break; } return 0;}

评论