/*控制主程序control.exe*/ #include<stdio.h> #include<string.h> #include<dos.h> #define MAX 100 typedef struct { char name[30]; char path[100]; char exename[30]; char taskname[30]; } list; list gamelist[MAX]; char password[20]; int recordnum; int points;
char p[70]; int initcontrol() { FILE *input,*output; char temp[80]; int i; input=fopen("Control.ini","r"); output=fopen("Control.tmp","w"); while(!feof(input)) { fgets(temp,80,input); if(temp[0]!=';') fputs(temp,output); } fclose(input); fclose(output); input=fopen("Control.tmp","r"); fscanf(input,"%d",&recordnum); for(i=0;i<recordnum;i++) fscanf(input,"%s%s%s%s",gamelist[i].name,gamelist[i].path,gamelist[i].exename,gamelist[i].taskname); fclose(input); input=fopen("Control","r"); fscanf(input,"%d%s",&points,password); fclose(input); } int startgame(int time) { int n; int i; printf("\n请选择游戏:1-%d\n",recordnum); for(i=0;i<recordnum;i++) printf("%d.%s\n",i+1,gamelist[i].name); choice: scanf("%d",&n); if(n<=recordnum && n>0) { sprintf(p," %s %d",gamelist[n-1].taskname,time); spawnl(1,"D:\\control\\break.exe",p,NULL); chdir(gamelist[n-1].path); system(gamelist[n-1].exename); } else { printf("序号错误!请重新选择\n"); goto choice; } } int main(void) { int i=0; int n; int time; FILE *output; initcontrol(); printf("SK-CHINA 2007-2008\n"); printf("游戏总控制程序\n"); printf("Game Control BY S.K\n"); printf("请选择\n1.使用点数\n2.输入家长控制密码\n"); scanf("%d",&n); if(n==1) { printf("现有点数:%d\n你游戏的每分钟将耗点数1\n",points); printf("请设定游戏时间 [单位:分钟]\n"); re: scanf("%d",&time); if(time>points) { printf("点数不够,请重新输入\n"); goto re; } points=points-time; output=fopen("Control","w"); fprintf(output,"%d\n%s",points,password); startgame(time); }
if(n==2) { printf("\n请输入家长控制密码:"); while(p[i]=getch()) { if(p[i]==13) break; if(p[i]!='\b') { printf("*"); i++; } else { printf("\b \b"); i--; } } p[i]='\0'; if(strcmp(password,p)==0) { printf("\n密码通过!"); printf("请设定游戏时间 [单位:分钟]\n"); scanf("%d",&time); startgame(time); } else { printf("\n密码错误!按任意键退出"); getch(); exit(1); } } } /*控制关闭程序break.exe*/ DEV-CPP 32位C工程 #include<stdio.h> #include<dos.h> #include<string.h> int main(int argc,char **argv) { int t; int i; char s[100]; if(argc>2) { sscanf(argv[2],"%d",&t); sleep(t*60000); sprintf(s,"taskkill /im %s /f",argv[1]); system(s); } return 0; } /*学习控制器 study.exe 比较简陋的,有待更新*/ #include<stdio.h> #include<stdlib.h> #include<time.h> #include<dir.h> int main(void) { time_t time1,time2; int n; int x; int points; char path[100]; char password[20]; FILE *input,*output; printf("你可以通过学习英语获取游戏点数,每一分钟的学习将获得一点游戏点"); printf("\n是否学习?[1.学习 2.终止]"); scanf("%d",&n); if(n==1) { getcwd(path,100); chdir("D:\\ruanjian\\New Oriental Soft\\New Oriental Words 4\\"); /*这是一个学习软件的路径*/ time1=time(NULL); system("Recite4.exe"); /*学习软件的程序名*/ time2=time(NULL); x=(int)(difftime(time2,time1)/60); chdir(path); input=fopen("control","r"); fscanf(input,"%d%s",&points,password); points=points+x; fclose(input); output=fopen("control","w"); fprintf(output,"%d\n%s",points,password); fclose(output); } return 0; }
|