/******************* 1、创建快捷方式、启动 2、移动、1、移回数据 3、移动、1、移回数据 4、1 ********************/ #include <cstdio> #include <cstdlib> #include <conio.h> #include <cstring> #include <direct.h> char flash_ver[20]= "20.0.0.306" ; //清除字符串前后空格、换行符 void clear_str(char *str) { int del0, del1, i; for(del0=0; str[del0]!='\0'&& (str[del0]==10||str[del0]==13||str[del0]==32); del0++); for(del1=del0; str[del1]!='\0'; del1++); for(del1--; del1>del0&& (str[del1]==10||str[del1]==13||str[del1]==32) ;del1--); for(i=del0;i<=del1;i++) str[i-del0]=str[i]; str[i]='\0'; } //参数1:AMD64/x86 int main(int argc, char* argv[]) { printf("\n\t\t中元浏览器 By Moshel\n"); printf("====================================================\n\n\n"); system("title 中元浏览器 - 启动器"); system("color 72"); if(argc<2) { printf(" 加载失败,请运行START.bat引导启动中元浏览器 ^O^\n\n "); system("pause"); return 0; } printf(" 中元浏览器支持以下启动方式:\n\n"); printf("\t1、不复制文件直接启动\n\t 会伤U盘,仅适合在该电脑上短时间使用\n\n"); printf("\t2、将UserData复制到硬盘再运行\n\t 避免临时文件的频繁读写对U盘造成损害\n\n"); printf("\t3、将整个浏览器复制到本地硬盘后运行\n\t 仅适合需要拔出U盘的情况\n\n"); printf("\t4、直接运行浏览器,而不加载UserData\n\t 数据无所谓,只要一个Chrome就好\n\n"); printf("\n 请输入你的选择:"); short start_way=0; while(start_way<'1'||start_way>'4') start_way=getch(); //getchar(); start_way-='0';//对应数字选项 system("cls"); char *app_name; if(argv[1][0]=='A') //AMD64 { char app_name_str[10]="x64"; app_name=app_name_str; printf("\n 检测到64位系统\n\n"); } else { char app_name_str[10]="x86"; app_name=app_name_str; printf("\n 检测到32位系统\n\n"); } printf(" 中元浏览器开始加载方案%d...\n\n",start_way); /* 变量创建 tmp_dir %TMP%\zyllq\ desktop %desktop%\ canshu 不包括user-data-dir、flags、flash的运行参数,无前后空格 app_dir ...\chrome.exe app86_dir x86\chrome.exe start_dir ...\ data_dir ~~~\User Data pwd_dir ~~~\ flash_dir ~~~\pepflashplayer_x64.dll 或 _x86.dll flash86_dir ~~~\pepflashplayer_x86.dll —————— app_name x64或x86 */ char str[999]; FILE *f; char pwd_dir[333]; f=fopen("data\\pwd.txt","r"); if(f==NULL) { printf(" 严重错误:无法读取当前所在目录,无法加载User Data。\n\n"); system("pause"); return 1; } fgets(pwd_dir,333,f); fclose(f); clear_str(pwd_dir); char *tmp=getenv("TMP"), tmp_dir[222]; sprintf(tmp_dir,"%s\\zyllq\\",tmp); char canshu[100]="--allow-outdated-plugins", desktop[100]; sprintf(desktop,"%s\\Desktop\\",getenv("USERPROFILE")); if(access(desktop,0)!=0) { sprintf(desktop,"%s\\桌面\\",getenv("USERPROFILE")); if(access(desktop,0)!=0) printf(" 无法检测到你的桌面的路径,这会导致创建快捷方式失败!\n\n"); } char app_dir[333], start_dir[333], data_dir[333]; if(start_way==1) { sprintf(app_dir,"%s%s\\chrome.exe",pwd_dir,app_name); sprintf(start_dir,"%s%s\\",pwd_dir,app_name); sprintf(data_dir,"%sUser Data",pwd_dir); } else if(start_way==2) { sprintf(app_dir,"%s%s\\chrome.exe",pwd_dir,app_name); sprintf(start_dir,"%s%s\\",pwd_dir,app_name); sprintf(data_dir,"%sUser Data",tmp_dir); } else if(start_way==3) { sprintf(app_dir,"%s%s\\chrome.exe",tmp_dir,app_name); sprintf(start_dir,"%s%s\\",tmp_dir,app_name); sprintf(data_dir,"%sUser Data",tmp_dir); } else { sprintf(app_dir,"%s%s\\chrome.exe",pwd_dir,app_name); sprintf(start_dir,"%s%s\\",pwd_dir,app_name); sprintf(data_dir,"%sUser Data",tmp_dir); } char flash_dir[333], flash86_dir[333]; if(start_way==3) { sprintf(flash_dir,"%spepflashplayer_%s.dll",tmp_dir,app_name); sprintf(flash86_dir,"%spepflashplayer_x86.dll",tmp_dir); } else { sprintf(flash_dir,"%spepflashplayer_%s.dll",pwd_dir,app_name); sprintf(flash86_dir,"%spepflashplayer_x86.dll",pwd_dir); } char app86_dir[333]; sprintf(app86_dir,"%sx86\\chrome.exe",pwd_dir); //桌面目录创建 sprintf(str,"%s中元浏览器",desktop); mkdir(str); //进行移动 if(start_way==2 || start_way==3) { printf(" 正在部署User Data到本地磁盘...\n "); sprintf(str,"xcopy \"%sUser Data\" \"%sUser Data\\\" /S /Q /Y",pwd_dir,tmp_dir); system(str); //移回脚本 sprintf(str,"%s中元浏览器\\将UserData移回U盘.cmd",desktop); f=fopen(str,"w"); if(f!=NULL) { fprintf(f,": By Moshel. (http://hzy.pw/) \n\n"); fprintf(f,"@echo off \n\n"); fprintf(f,"echo 使用中元浏览器一段时间后\necho 可以选择在这里将本地磁盘的UserData复制回U盘,保存最新的个人数据\n"); fprintf(f,"echo.\npause \n\necho.\necho 数据移回中,请耐心等待...\n\n"); fprintf(f,"md \"%sUser Data new\"\n",pwd_dir); fprintf(f,"xcopy \"%sUser Data\" \"%sUser Data new\" /S /Q /Y \n",tmp_dir,pwd_dir); fprintf(f,"rd \"%sUser Data\" /S /Q \n",pwd_dir); fprintf(f,"move /Y \"%sUser Data new\" \"%sUser Data\" \n\n",pwd_dir,pwd_dir); fprintf(f,"echo.\necho 移回成功!\necho.\npause\n"); fclose(f); printf(" 已在桌面创建移回脚本\n\n"); } else printf(" 在桌面创建移回脚本未成功!\n\n"); } if(start_way==3) { printf(" 正在部署中元浏览器到本地磁盘...\n "); sprintf(str,"xcopy \"%s%s\" \"%s%s\\\" /S /Q /Y",pwd_dir,app_name,tmp_dir,app_name); system(str); sprintf(str,"copy /Y \"%spepflashplayer*\" \"%s\\\"",pwd_dir,tmp_dir); system(str); printf("\n"); } //快捷方式 printf(" 正在创建桌面快捷方式...\n\n"); sprintf(str,"%s中元浏览器\\运行中元浏览器.cmd",desktop); f=fopen(str,"w"); sprintf(str,"start \"\" \"%s\" --user-data-dir=\"%s\" --ppapi-flash-path=\"%s\" --ppapi-flash-version=\"%s\" %s",app_dir,data_dir,flash_dir,flash_ver,canshu); if(f==NULL) printf(" 创建失败!\n\n"); else { fprintf(f,": By Moshel. (http://hzy.pw/)\n\n%s\n",str); fclose(f); } //启动 system(str); //x86额外支持 if(app_name[1]=='6') { sprintf(str,"%s中元浏览器\\运行x86版本(支持更多加载项).cmd",desktop); f=fopen(str,"w"); if(f!=NULL) { sprintf(str,"start \"\" \"%s\" --user-data-dir=\"%s\" --ppapi-flash-path=\"%s\" --ppapi-flash-version=\"%s\" %s",app86_dir,data_dir,flash86_dir,flash_ver,canshu); fprintf(f,": By Moshel. (http://hzy.pw/)\n\n%s\n",str); fclose(f); printf(" 同时已创建x86版本快捷方式\n\n"); } } printf("====================================================\n\t中元浏览器已加载完成,请享用~ :D\n\n"); system("ping -n 5 127.0.0.1 > nul"); }
开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»
可以将 main() 拆分成几个小而美的函数,才符合你的气质!