IKeymanProduct::Activate
Attempt to activate the product using the activation blob provided. If activation fails, a reason will be given in an exception.
Declaration
Sub Activate(ActivationResponseBlob As String)
Parameters
No | Name | Type | Description |
---|---|---|---|
1 | ActivationResponseBlob | String | A text string as returned from the Tavultesoft Activation Server |
Example Code
function ActivateProduct(const licno: WideString): Boolean; var s: string; arb: WideString; begin Result := False; { Validate the licence number } try FActiveProduct.GetActivationRequestCode(licno, arb); except on E:EOleException do begin WideShowMessage(MsgFromIdFormat(SKActivation_InvalidLicenceNumber, [E.Message])); Exit; end; end; { Connect to tavultesoft.com and get the response blob } try with THTTPUploader.Create(nil) do try Fields.Add('LicenceNumber', licno); Fields.Add('ActivationRequestBlob', arb); Proxy.Server := GetProxySettings.Server; Proxy.Port := GetProxySettings.Port; Request.Agent := 'Tavultesoft Keyman/'+GetVersionString; Request.Protocol := Upload_Protocol; Request.HostName := Upload_Server; Request.UrlPath := UploadPath_Activation; // '/prog/70/activation.php'; Upload; s := Trim(Response.MessageBodyAsString); finally Free; end; except on E:Exception do begin WideShowMessage(MsgFromIdFormat(SKActivation_ErrorConnectingToTavultesoft, [E.Message])); Exit; end; end; { Check that no trappable errors occurred } if Copy(s, 1, 7) = '<error>' then begin Delete(s,1,7); if Pos('</error>', s) > 0 then Delete(s, Pos('</error>', s), Length(s)); WideShowMessage(MsgFromIdFormat(SKActivation_ErrorActivating, [s])); Exit; end; { Pass the response blob to kmcomapi for validation and product activation } try FActiveProduct.Activate(s); except on E:EOleException do begin WideShowMessage(MsgFromIdFormat(SKActivation_ErrorActivating, [E.Message])); Exit; end; end; WideShowMessage(MsgFromId(SKActivation_Success)); Result := True; end;