UltraProtect ---- API

You can use these API to communicate with the ACProtect loader:
VC or other C/c++ compiler API prototype
void GetRegistrationName(szRegistrationName)
Get the USERID of the key.dat,if no key.dat or key.dat is not correct,the szRegistrationName will be empty string;
if the key.dat is OK,the szRegistrationName will be the USERID of the key.dat;
void GetTrialUsageTimes(lpUsageTime)
Get the Trial Number corresponding to your different trial types;
Delphi compiler API prototype
MessageBox($FFFFFFFF, @usrname[0], nil, 0);//same as GetRegistrationName(@usrname[0]) in VC;
Get the USERID of the key.dat,if no key.dat or key.dat is not correct,the szRegistrationName will be empty string;
if the key.dat is OK,the szRegistrationName will be the USERID of the key.dat;
MessageBox($FFFFFFFF, @a, nil, 1); //same as GetTrialUsageTimes(@a) in VC;
Get the Trial Number corresponding to your different trial types;
Example for Delphi
procedure TForm1.FormActivate(Sender: TObject);
var usrname:array[0..255] of char; //make sure its 256 bytes long
a:byte;
begin
fillchar(usrname,256,#0);
//Get User name from acprotect loader
MessageBox($FFFFFFFF, @usrname[0], nil, 0);//same as GetRegistrationName(@usrname[0]);
if trim(usrname)<>'' then label2.caption:=usrname
else label2.caption:='unregistered';
label4.caption:=format('%x',[getmachineid]);
//Get Trial UsageTime from acprotect loader if required
MessageBox($FFFFFFFF, @a, nil, 1); //same as GetTrialUsageTimes(@a);
label6.caption:=inttostr(a);
end;
Example for C/C++
{
char usrname[256];
//API to Get UserName by acprotect
GetRegistrationName(usrname);
if (usrname=="") MessageBox("Invalid user","",MB_OK);
else MessageBox(usrname,"",MB_OK);
//API to Get UserName by acprotect
//API to Get UsageTime by acprotect
char num[2];
GetTrialUsageTimes(&num[0]);
num[0]+=0x30;
num[1]=0;
MessageBox(num,"",MB_OK);
//API to Get UsageTimes by acprotect
}
|