delphi使用VMProtectSDK的激活码远程激活软件(客户端代码)

废话吧多说直接上代码吧。。

序列号啥的,自己去判断吧,最早写的例子,验证的服务器是PHP的,需要单独购买,csdn也能下载到。

其他不做说明,看vmp帮助,即可解决。

procedure TForm1.btn1Click(Sender: TObject);
Var
code :string;
serial : array[0..1024*4 - 1] of AnsiChar;
nRet,nState:Integer;
vmp :TVMProtectSerialNumberData;
begin
  code := edt1.Text;
  if (code = '') then
    Exit;
  nRet := VMProtectActivateLicense(PAnsiChar(AnsiString(code)), serial, SizeOf(serial));
//  ShowMessage(IntToStr(nRet));
  case nRet of
    ACTIVATION_OK:
      begin
        //mom1.Lines.Add(serial);
        code := serial;
        mom1.Lines.Add(code);
        nState := VMProtectSetSerialNumber(serial);
        case nState of
          0:
            begin
              mom1.Lines.Add('应用授权成功');
              VMProtectGetSerialNumberState();
              VMProtectGetSerialNumberData(@vmp, sizeof(vmp));
              mom1.Lines.Add(Format('截止信息: %.4d-%.2d-%.2d', [vmp.dtExpire.wYear, vmp.dtExpire.bMonth, vmp.dtExpire.bDay]))
            end;
          SERIAL_STATE_FLAG_DATE_EXPIRED:
            vmp.nState := SERIAL_STATE_FLAG_DATE_EXPIRED;
        end;
      end;
    ACTIVATION_NO_CONNECTION:
      mom1.Lines.Add('无法连接授权服务器');
    ACTIVATION_BANNED:
      mom1.Lines.Add('激活码错误');
    ACTIVATION_ALREADY_USED:
      mom1.Lines.Add('该激活码已被其他机器使用');
  end;

end;

 

你可能感兴趣的:(Delphi)