根据CPU序列号和磁盘序列号设计软件注册程序(十九)

来源:互联网 发布:手机网络增强器 编辑:程序博客网 时间:2024/06/06 08:42

 

根据CPU序列号和磁盘序列号设计软件注册程序(十九)
本文讲述如何通过CPU序列号和磁盘序列号来生成软件注册程序。
1.      创建对话框工程:CPUAndDiskReg
2.      创建一个按钮“生成序列号”,代码如下:
       CStringcode[16] = {"ad","eh","im","np","ru","vy","zc","gk",
       "pt","xb","fj","ox","wa","ei","nr","qu"};
       CStringreg,stred;
       intnum;
       m_machine.GetWindowText(stred);
       stred.MakeLower();
       for(inti = 0; i<10;i++)
       {
              charp = stred.GetAt(i);
              if(p>='a'&&p<='f')
                     num = p-'a'+10;
              else
                     num = p-'0';
              CStringtmp = code[num];
              reg+=tmp;
       }
 
       reg.MakeUpper();
       GetDlgItem(IDC_NUM1)->SetWindowText(reg.Mid(0,5));
       GetDlgItem(IDC_NUM2)->SetWindowText(reg.Mid(5,5));
       GetDlgItem(IDC_NUM3)->SetWindowText(reg.Mid(10,5));
       GetDlgItem(IDC_NUM4)->SetWindowText(reg.Mid(15,5));
3.      OnInitDialog()中添加代码如下,来获取CPU序列号和C盘序列号,并产生机器码。
       unsignedlongs1,s2;
       charsel;
       sel = '1';
       CStringMyCpuID,CPUID1,CPUID2;
       __asm{
              mov eax,01h
                     xor edx,edx
                     cpuid
                     mov s1,edx
                     mov s2,eax
       }
       CPUID1.Format("%08X%08X",s1,s2);
       __asm{
              mov eax,03h
                     xor ecx,ecx
                     xor edx,edx
                     cpuid
                     mov s1,edx
                     mov s2,ecx
       }
       CPUID2.Format("%08X%08X",s1,s2);
 
       MyCpuID = CPUID1+CPUID2;
       m_cpu.SetWindowText(MyCpuID);
       DWORDser;
       charnamebuf[128];
       charfilebuf[128];
       ::GetVolumeInformation("c://",namebuf,128,&ser,0,0,filebuf,128);
       CStringstrdisk;
       strdisk.Format("%d",ser);
       CStringstrmachine;
       strmachine = MyCpuID.Mid(13,5);
       strmachine+=strdisk.Mid(3,5);
       m_disk.SetWindowText(strdisk);
       m_machine.SetWindowText(strmachine);
       完成。

 

原创粉丝点击