⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ace.bak

📁 This is a CNCPro source file. It is include the G-Code interpreter source.
💻 BAK
📖 第 1 页 / 共 3 页
字号:
              }
           }
         else fsetpos(ifp, &pos);
        }
      if(temp==0 || temp==EOF) break;
     }
   if(count==0)
     {layer=(struct layer_obj *) calloc(++count, sizeof(struct layer_obj));
      sprintf(layer[0].name,"0");
     }
   for(i=0;i<count;i++)
     {layer[i].status=TRUE;
      layer[i].priority=1;
      layer[i].depth=.25;
      layer[i].arc=IDD_EITHERARC;
      layer[i].zchar='Z';
     }
   fclose(ifp);
   return count;
}
BOOL CALLBACK LicenseDlgProc (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     static char license[50], user[50];
     switch (iMsg)
          {
          case WM_INITDIALOG :
               if(check_key(user, license)==FALSE)
                 {sprintf(user,"EVALUATION");
                  sprintf(license,"000000000");
                 }
               SetWindowText(GetDlgItem(hDlg, IDD_LICENSE),license);
               SetWindowText(GetDlgItem(hDlg, IDD_USER),user);
               return TRUE ;
          case WM_COMMAND :
               switch (LOWORD (wParam))
                    {
		              case IDD_OK :
                         EndDialog(hDlg, 0);
                         return TRUE ;
                    }
               break;
         }
     return FALSE ;
     }

BOOL CALLBACK EndDlgProc (HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     switch (iMsg)
          {
          case WM_COMMAND :
               switch (LOWORD (wParam))
                    {
		              case IDD_OK :
                         EndDialog(hDlg, 0);
                         return TRUE ;
                    }
               break;
         }
     return FALSE ;
     }

void GetDir(char num, char dir[])
{
   int iTemp;
   static char szWinDir[_MAX_PATH], szAceIni[_MAX_PATH], szString[100];
   FILE *ifp;

   GetWindowsDirectory(szWinDir, _MAX_PATH);
   sprintf(szAceIni,"%s\\ace.ini",szWinDir);
   if((ifp=fopen(szAceIni,"r"))!=NULL)
     {while((iTemp=fscanf(ifp,"%s",szString))!=EOF && strcmp(szString,"[1]")!=0);
      if(iTemp!=EOF)
        {iTemp=fgetc(ifp);
         while(1)
           {while(iTemp!=EOF && iTemp!='\n' && iTemp!='[') iTemp=fgetc(ifp);
            if(iTemp==EOF || iTemp=='[') break;
            iTemp=fgetc(ifp);
            if(iTemp==num && (iTemp=fgetc(ifp))=='=')
              {fgets(dir,_MAX_PATH,ifp);
               iTemp=strlen(dir);
               if(iTemp>1) dir[iTemp-1]=0;
               if(iTemp>2 && dir[iTemp-2]=='\\') dir[iTemp-2]=0;
               break;
              }
           }
        }
      fclose(ifp);
     }
}

void SaveDir(char num, char dir[])
{
   int iTemp;
   static char szWinDir[_MAX_PATH], szAceIni[_MAX_PATH], szString[_MAX_PATH];
   FILE *ifp, *ofp;

   GetWindowsDirectory(szWinDir, _MAX_PATH);
   sprintf(szAceIni,"%s\\ace.ini",szWinDir);
   ofp=fopen("temp.tmp","w");
   if((ifp=fopen(szAceIni,"r"))!=NULL)
     {while(1)
        {if((iTemp=fgetc(ifp))=='[')
           {fputc(iTemp,ofp);
            if((iTemp=fgetc(ifp))=='1')
              {fputc(iTemp,ofp);
               if((iTemp=fgetc(ifp))==']')
                 {fputc(iTemp,ofp);
                  break;
                 }
              }
           }
         if(iTemp==EOF) break;
         fputc(iTemp, ofp);
        }
      if(iTemp!=EOF)
        {iTemp=fgetc(ifp);
         while(1)
           {while(iTemp!=EOF && iTemp!='\n') {fputc(iTemp,ofp); iTemp=fgetc(ifp);}
            if(iTemp==EOF) break;
            fputc(iTemp,ofp); iTemp=fgetc(ifp);
            if(iTemp==num)
              {fputc(iTemp,ofp); iTemp=fgetc(ifp);
               if(iTemp=='=')
                 {fputc(iTemp,ofp);
                  fgets(szString,_MAX_PATH,ifp);
                  fprintf(ofp,"%s\n",dir);
                  iTemp=fgetc(ifp);
                 }
              }
           }
        }
      fclose(ifp);
     }
   fclose(ofp);
   ifp=fopen("temp.tmp","r");
   ofp=fopen(szAceIni,"w");
   while((iTemp=fgetc(ifp))!=EOF) fputc(iTemp, ofp);
   fclose(ifp);
   fclose(ofp);
   remove("temp.tmp");
}

int check_key(char user[], char license[])
{
   int i, first, last, match=0, match2=0, match3=0, against=0, against2=0, against3=0, package, temp, oldlic=TRUE;
   static char SSN[]="409532060", key[10];
   static char szAcePath[_MAX_PATH], szLicense[_MAX_PATH] ;
   FILE *ifp;

   GetDir('1',szAcePath);
   sprintf(szLicense,"%s\\ace.lic",szAcePath);
   //check for old license
   if((ifp=fopen("ace.lic","r"))!=NULL)
     {if((first=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
      first=first-'D';
      if((last=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
      last=last-'Y';
      for(i=0;i<9;i++)
        {if(i<first)
           {if((user[i]=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
            user[i]=user[i]-SSN[i];
           }
         if(i==first && last>0) user[i]=' ';
         if(i>first && i<first+last+1)
           {if((user[i]=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
            user[i]=user[i]-SSN[i];
           }
         if((license[i]=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
         license[i]=license[i]-SSN[i];
         if((key[i]=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
         if(i<first+last) key[i]=key[i]-user[i];
         else key[i]=key[i]-SSN[i];
        }
      for(i=9;i<first+last+1;i++)
        {if(i!=first)
           {if((user[i]=fgetc(ifp))==EOF) {oldlic=FALSE; goto DONE;}
            user[i]=user[i]-SSN[i%9];
           }
         else user[i]=' ';
        }
      if(strcmp(SSN,key)!=0) {oldlic=FALSE; goto DONE;}
     }
   else return FALSE;
   DONE:
   fclose(ifp);
   if(oldlic==TRUE)  //replace old license with new one
     {if((ifp=fopen("ace.lic","w"))!=NULL)
        {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;
         match=match+'A'+match2+match3;
         match=match%26+65;
         fputc('A',ifp);
         for(i=0;i<9;i++)
           {if(i+1==5) fputc('-',ifp);
            fputc(license[i]-48+65+SSN[i]-48+5,ifp);
           }
         fputc('-',ifp);
         fputc(match,ifp);
         fputc(match2,ifp);
         fputc(match3,ifp);
         for(i=0;i<strlen(user);i++)
           {if((i+3)%5==0) fputc('-',ifp);
            if(user[i]==' ') fputc('1',ifp);
            else if(user[i]>=97) fputc((user[i]-97+SSN[i%9]-48+8)%26+65,ifp);
            else fputc((user[i]-65+SSN[i%9]-48+8)%26+97,ifp);
           }
        }
      else return FALSE;
      fclose(ifp);
     }

   //check for valid license
   if((ifp=fopen("ace.lic","r"))!=NULL)
     {if((package=fgetc(ifp))==EOF) {fclose(ifp); return FALSE;}
      for(i=0;i<9;i++)
        {if((temp=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
         if(temp=='-' && (temp=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
         license[i]=temp+48-65-SSN[i]+48-5;
        }
      if((match=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
      if(match=='-' && (match=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
      if((match2=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
      if(match2=='-' && (match2=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
      if((match3=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
      if(match3=='-' && (match3=fgetc(ifp))==EOF){fclose(ifp); return FALSE;}
      i=0;
      while((temp=fgetc(ifp))!=EOF && temp!='\n')
        {if(temp=='-' && (temp=fgetc(ifp))==EOF){continue;}
         if(temp=='1') user[i]=' ';
         else if(temp>=97) {user[i]=temp-(SSN[i%9]-48)-8; if(user[i]<97) user[i]=user[i]+26; user[i]=user[i]-32;}
         else {user[i]=temp-(SSN[i%9]-48)-8; if(user[i]<65) user[i]=user[i]+26; user[i]=user[i]+32;}
         i++;
        }
      user[i]=0;
      for(i=0;i<9;i++) against2=against=against+license[i];
      for(i=0;i<strlen(user);i++) against3=against=against+user[i];
      against=against+package+match2+match3;
      against=against%26+65;
      against2=against2%26+65;
      against3=against3%26+65;
      if(match!=against){fclose(ifp); return FALSE;}
      if(match2!=against2){fclose(ifp); return FALSE;}
      if(match3!=against3){fclose(ifp); return FALSE;}
     }
   else return FALSE;
   fclose(ifp);
   user[25]=0;
   return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -