You are on page 1of 2

[Files]

;file klien-1.iky dihasilkan oleh tool IKG


Source: klien-1.iky; DestDir: {tmp}; Flags: ignoreversion
Source: ISID.dll; DestDir: {sys}; Flags: ignoreversion

[Code]
function ValidateSerialNumber(InnoKeyFile, User, Orgn, ProdCode, HDD, MAC,
PrivateKey, Serial: String): Boolean;
external 'ValidateSerialNumber@files:ISID.dll stdcall';

const
INNO_KEY = 'klien-1.iky';

var
UserPage : TInputQueryWizardPage;
UserValues : TArrayOfString;

procedure InitializeWizard();
begin
{ create the custom page }
UserPage := CreateInputQueryPage(wpInfoBefore, 'Informasi Registrasi', 'Anda
memerlukan user yang valid agar bisa melanjutkan proses instalasi',
'Masukkan informasi registrasi (case sensitive), kemudian klik tombol
Lanjut >.');

UserPage.Add('Registered Name:', False);


UserPage.Add('Registered Company:', False);
UserPage.Add('Registration Code:', False);
UserPage.Add('Private Key:', False);

{ Set default values }


SetArrayLength(UserValues, 4);
RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion',
'RegisteredOwner', UserValues[0]);
RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion',
'RegisteredOrganization', UserValues[1]);
if (UserValues[0] = '') and (UserValues[1] = '') then begin
RegQueryStringValue(HKCU, 'Software\Microsoft\MS Setup (ACME)\User Info',
'DefName', UserValues[0]);
RegQueryStringValue(HKCU, 'Software\Microsoft\MS Setup (ACME)\User Info',
'DefCompany', UserValues[1]);
end;

{ Try to find the settings that were stored last time (also see below). }
UserPage.Values[0] := GetPreviousData('Name', UserValues[0]);
UserPage.Values[1] := GetPreviousData('Company', UserValues[1]);
UserPage.Values[2] := GetPreviousData('Unlock', UserValues[2]);
UserPage.Values[3] := GetPreviousData('Private', UserValues[3]);

end;

procedure RegisterPreviousData(PreviousDataKey: Integer);


begin
{ Store the settings so we can restore them next time }
SetPreviousData(PreviousDataKey, 'Name', UserPage.Values[0]);
SetPreviousData(PreviousDataKey, 'Company', UserPage.Values[1]);
SetPreviousData(PreviousDataKey, 'Unlock', UserPage.Values[2]);
SetPreviousData(PreviousDataKey, 'Private', UserPage.Values[3]);
end;
function ScriptDlgPages(CurPage: Integer; BackClicked: Boolean): Boolean;
var
ExpPath: String;

begin
Result := True;

if (CurPage = UserPage.ID) then


begin
ExtractTemporaryFile(INNO_KEY); { the public key file }

ExpPath := ExpandConstant('{tmp}\' + INNO_KEY);

Result := False;

UserValues[0] := UserPage.Values[0];
UserValues[1] := UserPage.Values[1];
UserValues[2] := UserPage.Values[2];
UserValues[3] := UserPage.Values[3];

if (UserValues[0] = '') or (UserValues[1] = '') or (UserValues[2] = '') or


(UserValues[3] = '') then
MsgBox('No fields can be blank !', mbError, MB_OK)
else
begin
Result := ValidateSerialNumber(ExpPath, UserValues[0], UserValues[1],
'', '', '', UserValues[3], UserValues[2]);

if (not Result) then


MsgBox('Invalid Entry !', mbError, MB_OK);

end
end
end;

function NextButtonClick(CurPage: Integer): Boolean;


begin
Result := ScriptDlgPages(CurPage, False);
end;

function BackButtonClick(CurPage: Integer): Boolean;


begin
Result := True;//ScriptDlgPages(CurPage, True);
end;

function HasHtmlHelp(): Boolean;


begin
{ HHCTRL.OCX GUID }
Result := RegValueExists(HKCR, 'CLSID\{4662DAB0-D393-11D0-9A56-
00C04FB68B66}\InprocServer32', '');
end;

function HasNoHtmlHelp(): Boolean;


begin
Result := not HasHtmlHelp;
end;

You might also like