就是想把我的程序做成要输入序列号时才能使用,怎样做这个序列号生成程序啊???
再具体点就是当第一次运行我的程序时产生一个机器号,之后根据这个机器号,我再生成
一个序列号,当用户输入序列号注册后才能正常运行程序!!!!

解决方案 »

  1.   

    根据取CPU序列号来加密:type
       TCPUID  = array[1..4] of Longint;function GetCPUID : TCPUID; assembler; register;     //得到CPU序列号
    asm
      PUSH    EBX         {Save affected register}
      PUSH    EDI
      MOV     EDI,EAX     {@Resukt}
      MOV     EAX,1
      DW      $A20F       {CPUID Command}
      STOSD           {CPUID[1]}
      MOV     EAX,EBX
      STOSD               {CPUID[2]}
      MOV     EAX,ECX
      STOSD               {CPUID[3]}
      MOV     EAX,EDX
      STOSD               {CPUID[4]}
      POP     EDI {Restore registers}
      POP     EBX
    end;这样调用:
        MyCPUID: TCPUID;
        str: string;
    begin
        MyCPUID := GetCPUID;
        str := IntToStr(MyCPUID[1])+ IntToStr(MyCPUID[2])+ IntToStr(MyCPUID[3])+ IntToStr(MyCPUID[4]);str即为得到的CPUID。再用个算法来加密CPU ID=注册序号
      

  2.   

    CPU系列号同一型号的系列号一样.你可以采用硬盘的出厂系列号.
    代码可以参考FAQ里面我帖过的例子.
    比较的时候不要DESEncrypt(ID)=注册码,这样明显的是明码比较
    应该采用DESDecrypt(系列号)=ID详细请参看:
    http://blog.csdn.net/VCInfo/archive/2006/03/08/619008.aspx