📄 make_lic.bak
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#include <process.h>
#define TRUE 1
#define FALSE 0
int main(void)
{
long lic_num;
int i, j, ch=0, num, itemp, cnc_price, ace_price, price, database;
int match, match2, match3;
static char SSN[10], license[50], acelic[11], cnclic[11];
static char dir[200], user[200], user2[200], string[200], tdate[20], dealer[200], email[200];
FILE *ifp, *ofp, *sales, *eml;
struct date datep;
if((ifp=fopen("c:\\yeagauto\\sales\\keyinfo.txt","r"))==NULL) return 0;
if(NULL==fgets(string,200,ifp)) return 0; itemp=strlen(string); if(itemp>1) string[itemp-1]=0;
if(strcmp(string,"CNC Pro License")==0) ch='1';
if(strcmp(string,"CNC Pro Lite License")==0) ch='2';
if(strcmp(string,"ACEconverter License")==0) ch='3';
if(strcmp(string,"CNC Pro Lite/ACEconverter License")==0) ch='4';
if(strcmp(string,"CNC Pro/ACEconverter License")==0) ch='5';
if(ch=='3' || ch=='4' || ch=='5')
{if(NULL==fscanf(ifp,"%d",&ace_price)) return 0;
while((itemp=fgetc(ifp))!='\n' && itemp!=EOF); if(itemp==EOF) return 0;}
if(ch=='1' || ch=='2' || ch=='4' || ch=='5')
{if(NULL==fscanf(ifp,"%d",&cnc_price)) return 0;
while((itemp=fgetc(ifp))!='\n' && itemp!=EOF); if(itemp==EOF) return 0;}
if(NULL==fgets(user,200,ifp)) return 0; itemp=strlen(user); if(itemp>1) user[itemp-1]=0; user[25]=0;
if(NULL==fgets(dealer,200,ifp)) return 0; itemp=strlen(dealer); if(itemp>1) dealer[itemp-1]=0;
if(NULL==fgets(email,200,ifp)) return 0; itemp=strlen(email); if(itemp>1) email[itemp-1]=0;
if(strcmp("none",dealer)==NULL) dealer[0]=0;
if(NULL==fgets(string,200,ifp)) return 0; itemp=strlen(string); if(itemp>1) string[itemp-1]=0;
if(strcmp(string,"write in database")==0) database=TRUE;
else database=FALSE;
if(database==FALSE && (ch=='3' || ch=='4' || ch=='5')) {if(NULL==fgets(acelic,11,ifp)) return 0; acelic[9]=0;}
if(database==FALSE && (ch=='1' || ch=='2' || ch=='4' || ch=='5')) {if(NULL==fgets(cnclic,11,ifp)) return 0; cnclic[9]=0;}
fclose(ifp);
getdate(&datep);
sprintf(tdate,"%d/%d/%d",datep.da_mon,datep.da_day,datep.da_year);
sprintf(user2,"%s",user);
user2[8]=0;
for(j=0;j<8;j++)
{if(user2[j]==' ') {user2[j]=0;}
}
sprintf(dir,"c:\\yeagauto\\sales\\%s",user2);
sprintf(string,"mkdir %s",dir);
system(string);
if(ch=='4' || ch=='5') num=2;
else num=1;
sprintf(string,"copy c:\\yeagauto\\sales\\keys.txt \"%s\"",dir);
system(string);
for(j=0;j<num;j++)
{if(ch=='1' || ch=='2')
{price=cnc_price;
sprintf(SSN,"306881320");
if(ch=='1') sprintf(string,"c:\\yeagauto\\sales\\cnc_sale.txt");
if(ch=='2') sprintf(string,"c:\\yeagauto\\sales\\cnclsale.txt");
}
if(ch=='3')
{price=ace_price;
sprintf(SSN,"409532060");
sprintf(string,"c:\\yeagauto\\sales\\ace_sale.txt");
}
if(ch=='4' || ch=='5')
{if(j==0)
{price=cnc_price;
sprintf(SSN,"306881320");
if(ch=='5') sprintf(string,"c:\\yeagauto\\sales\\cnc_sale.txt");
if(ch=='4') sprintf(string,"c:\\yeagauto\\sales\\cnclsale.txt");
}
else
{price=ace_price;
sprintf(SSN,"409532060");
sprintf(string,"c:\\yeagauto\\sales\\ace_sale.txt");
}
}
if((sales=fopen(string,"r"))!=NULL)
{lic_num=0;
while(1)
{while((itemp=fgetc(sales))!=EOF && itemp!='\n');
if(itemp==EOF) break;
fscanf(sales,"%09u",&lic_num);
}
lic_num++;
if(database==TRUE) sprintf(license,"%09lu",(long)lic_num);
else
{if(strcmp(SSN,"306881320")==0) sprintf(license,"%s",cnclic);
else sprintf(license,"%s",acelic);
}
fclose(sales);
}
if((sales=fopen(string,"a"))!=NULL)
{if(database==TRUE)
{fprintf(sales,"%-13s%-14s%-8d%-25s%-25s%s\n",license,tdate,price,user,dealer,email);
if(j==0 && dealer[0]==0 && (eml=fopen("c:\\yeagauto\\sales\\email.txt","a"))!=NULL)
{fprintf(eml,", %s",email);
fclose(eml);
}
}
fclose(sales);
}
sprintf(string,"%s\\keys.txt",dir);
if((ofp=fopen(string,"a"))==NULL) return 0;
if(strcmp(SSN,"306881320")==0 && (ch=='1' || ch=='5')) fprintf(ofp,"CNC Pro License Key:\n");
if(strcmp(SSN,"306881320")==0 && (ch=='2' || ch=='4')) fprintf(ofp,"CNC Pro Lite License Key:\n");
if(strcmp(SSN,"409532060")==0 && (ch=='3' || ch=='5' || ch=='4')) fprintf(ofp,"ACEconverter License Key:\n");
match=match2=match3=0;
for(i=0;i<9;i++) match2=match=match+license[i];
for(i=0;i<strlen(user);i++) match3=match=match+user[i];
match2=match2%26+65;
match3=match3%26+65;
if(ch!='2' && ch!='4') match=match+'A'+match2+match3;
else match=match+'B'+match2+match3;
match=match%26+65;
if(ch!='2' && ch!='4') fputc('A',ofp);
else fputc('B',ofp);
for(i=0;i<9;i++)
{if(i+1==5) fputc('-',ofp);
fputc(license[i]-48+65+SSN[i]-48+5,ofp);
}
fputc('-',ofp);
fputc(match,ofp);
fputc(match2,ofp);
fputc(match3,ofp);
for(i=0;i<strlen(user);i++)
{if((i+3)%5==0) fputc('-',ofp);
if(user[i]==' ') fputc('1',ofp);
else if(user[i]>=97) fputc((user[i]-97+SSN[i%9]-48+8)%26+65,ofp);
else fputc((user[i]-65+SSN[i%9]-48+8)%26+97,ofp);
}
fprintf(ofp,"\n\n");
fclose(ofp);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -