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

📄 about.c

📁 OBDII的ScanTool源码,对此有兴趣的朋友可以参考一下
💻 C
📖 第 1 页 / 共 3 页
字号:
         strcpy(processor_vendor, "an unknown CPU vendor");


      if(!strcmp("GenuineIntel", cpu_vendor))
      {
         if (cpu_family == 4)
         {
            switch(cpu_model)
            {
               case 0:
                  strcpy(processor_model, " 486 DX-25/33");
                  break;
               case 1:
                  strcpy(processor_model, " 486 DX-50");
                  break;
               case 2:
                  strcpy(processor_model, " 486 SX");
                  break;
               case 3:
                  strcpy(processor_model, " 486 DX/2");
                  break;
               case 4:
                  strcpy(processor_model, " 486 SL");
                  break;
               case 5:
                  strcpy(processor_model, " 486 SX/2");
                  break;
               case 7:
                  strcpy(processor_model, " 486 DX/2-WB");
                  break;
               case 8:
                  strcpy(processor_model, " 486 DX/4");
                  break;
               case 9:
                  strcpy(processor_model, " 486 DX/4-WB");
            }
         }

         if (cpu_family == 5)
         {
            switch(cpu_model)
            {
               case 0:
                  strcpy(processor_model, " Pentium 60/66 A-step");
                  break;
               case 1:
                  strcpy(processor_model, " Pentium 60/66");
                  break;
               case 2:
                  strcpy(processor_model, " Pentium 75 - 200");
                  break;
               case 3:
                  strcpy(processor_model, " OverDrive PODP5V83");
                  break;
               case 4:
                  strcpy(processor_model, " Pentium MMX");
                  break;
               case 7:
                  strcpy(processor_model, " Mobile Pentium 75 - 200");
                  break;
               case 8:
                  strcpy(processor_model, " Mobile Pentium MMX");
                  break;
            }
         }

         if (cpu_family == 6)
         {
            switch(cpu_model)
            {
               case 0:
                  strcpy(processor_model, " Pentium Pro A-step");
                  break;
               case 1:
                  strcpy(processor_model, " Pentium Pro");
                  break;
               case 3:
                  strcpy(processor_model, " Pentium II (Klamath)");
                  break;
               case 5:
                  strcpy(processor_model, " Pentium II, Celeron, or Mobile Pentium II");
                  break;
               case 6:
                  strcpy(processor_model, " Mobile Pentium II or Celeron (Mendocino)");
                  break;
               case 7:
                  strcpy(processor_model, " Pentium III (Katmai)");
                  break;
               case 8:
                  strcpy(processor_model, " Pentium III (Coppermine)");
                  break;
            }
         }

         if (cpu_family >= 15)
            strcpy(processor_model, " Pentium IV or better");
      } // end of Intel block

      if(!strcmp("AuthenticAMD", cpu_vendor))
      {
         switch(cpu_family)
         {
            case 4:
               switch (cpu_model)
               {
                  case 3:
                     strcpy(processor_model, " 486 DX/2");
                     break;
                  case 7:
                     strcpy(processor_model, " 486 DX/2-WB");
                     break;
                  case 8:
                     strcpy(processor_model, " 486 DX/4");
                     break;
                  case 9:
                     strcpy(processor_model, " 486 DX/4-WB");
                     break;
                  case 14:
                     strcpy(processor_model, " Am5x86-WT");
                     break;
                  case 15:
                     strcpy(processor_model, " Am5x86-WB");
                     break;
               }
               break;

            case 5:
               switch (cpu_model)
               {
                  case 0:
                     strcpy(processor_model, " K5/SSA5");
                     break;
                  case 1: case 2: case 3:
                     strcpy(processor_model, " K5");
                     break;
                  case 6: case 7:
                     strcpy(processor_model, " K6");
                     break;
                  case 8:
                     strcpy(processor_model, " K6-2");
                     break;
                  case 9:
                     strcpy(processor_model, " K6-3");
                     break;
                  case 13:
                     strcpy(processor_model, " K6-2+ or K6-III+");
                     break;
               }
               break;
            
            case 6:
               switch (cpu_model)
               {
                  case 0: case 1:
                     strcpy(processor_model, " Athlon (25 um)");
                     break;
                  case 2:
                     strcpy(processor_model, " Athlon (18 um)");
                     break;
                  case 3:
                     strcpy(processor_model, " Duron");
                     break;
                  case 4:
                     strcpy(processor_model, " Athlon (Thunderbird)");
                     break;
                  case 6:
                     strcpy(processor_model, " Athlon (Palamino)");
                     break;
                  case 7:
                     strcpy(processor_model, " Duron (Morgan)");
                     break;
               }
               break;
         }
      } // end of AMD block

      if(strcmp("CyrixInstead", cpu_vendor) == 0)
      {
         switch(cpu_family)
         {
            case 4:
               strcpy(processor_model, " MediaGX");
               break;
               
            case 5:
               switch(cpu_model)
               {
                  case 2:
                     strcpy(processor_model, " 6x86/6x86L");
                     break;
                  case 4:
                     strcpy(processor_model, " MediaGX MMX Enhanced");
                     break;
               }
               break;
               
            case 6:
               switch(cpu_model)
               {
                  case 0:
                     strcpy(processor_model, " m II");
                     break;
                  case 5:
                     strcpy(processor_model, " VIA Cyrix M2 core");
                     break;
                  case 6:
                     strcpy(processor_model, " WinChip C5A");
                     break;
                  case 7:
                     strcpy(processor_model, " WinChip C5B");
                     break;
               }
               break;
         }
      } // end of Cyrix block
      
      
      if(!strcmp("UMC UMC UMC", cpu_vendor))
      {
         if (cpu_family == 4)
         {
            if (cpu_model == 1)
               strcpy(processor_model, " U5D");
            if (cpu_model == 2)
               strcpy(processor_model, " U5S");
         }
      }  // end of UMC block
      

      if(strcmp("GenuineTMx86", cpu_vendor) == 0)
         if ((cpu_family == 5) && (cpu_model == 0))
            strcpy(processor_model, " Nx586"); // end of NexGen block
            
      if(strcmp("RISERISERISE", cpu_vendor) == 0)
         if ((cpu_family == 5) && ((cpu_model == 0) || (cpu_model == 1)))
            strcpy(processor_model, " mP6"); // end of Rise block
            

      switch (os_type)
      {
         case OSTYPE_UNKNOWN:
            strcpy(os_name, "MSDOS");
            break;

         case OSTYPE_WIN3:
            strcpy(os_name, "Windows 3.x");
            break;

         case OSTYPE_WIN95:
            strcpy(os_name, "Windows 95");
            break;
            
         case OSTYPE_WIN98:
            strcpy(os_name, "Windows 98");
            break;

         case OSTYPE_WINME:
            strcpy(os_name, "Windows ME");
            break;

         case OSTYPE_WINNT:
            strcpy(os_name, "Windows NT");
            break;

         case OSTYPE_WIN2000:
            strcpy(os_name, "Windows 2000");
            break;

         case OSTYPE_WINXP:
            strcpy(os_name, "Windows XP");
            break;

         case OSTYPE_OS2:
            strcpy(os_name, "OS/2");
            break;

         case OSTYPE_WARP:
            strcpy(os_name, "OS/2 Warp 3");
            break;

         case OSTYPE_DOSEMU:
            strcpy(os_name, "Linux DOSEMU");
            break;

         case OSTYPE_OPENDOS:
            strcpy(os_name, "Caldera OpenDOS");
            break;

         case OSTYPE_LINUX:
            strcpy(os_name, "Linux");
            break;

         case OSTYPE_FREEBSD:
            strcpy(os_name, "Free BSD"); // do not translate!
            break;

         case OSTYPE_UNIX:
            strcpy(os_name, "Unix");
            break;

         case OSTYPE_BEOS:
            strcpy(os_name, "BeOS");
            break;

         case OSTYPE_QNX:
            strcpy(os_name, "QNX");
            break;

         case OSTYPE_MACOS:
            strcpy(os_name, "Mac OS");
            break;

         default:
            strcpy(os_name, "Unknown OS");
      }


      sprintf(cpu_info_buf, "You have %s%s%s based computer (%i:%i),", processor_vendor, processor_family, processor_model, cpu_family, cpu_model);
      sprintf(os_type_buf, "running %s version %i.%i", os_name, os_version, os_revision);
      alert(cpu_info_buf, os_type_buf, NULL, "OK", NULL, 0, 0);

      return D_REDRAWME;
   }

   return ret;
}

⌨️ 快捷键说明

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