วันพุธที่ 18 พฤศจิกายน พ.ศ. 2563

Inno setup ให้มี Input Page Custom มี Serial number,Email เก็บใน registry

 Inno Setupใช้ ภาษา Pascal การทำให้มี Custom page ทำโดย สร้าง Code ให้ Return ค่าจาก Page

โดยที่ ตัวแปรของ Page จะตามลำดับ Input 0..n

ในส่วนของ Registry ก็ให้ getค่ามาจาก page นี้ ValueData: "{code:GetInstallName}"



[Code]

var

 UserInputsPage: TInputQueryWizardPage;

function GetUserName(Param: string): string;

begin

  Result := UserInputsPage.Values[0];

end;

function GetUserCompany(Param: string): string;

begin

  Result := UserInputsPage.Values[1];

end;

function GetUserEmail(Param: string): string;

begin

  Result := UserInputsPage.Values[2];

end;

function GetUserSerialNo(Param: string): string;

begin

  Result := UserInputsPage.Values[3];

end;


procedure InitializeWizard;

begin

  { Create the page }

  UserInputsPage :=

    CreateInputQueryPage(wpWelcome,

      'User information', 'User Information',

      'Please specify the following information, then click Next.');


 UserInputsPage.Add('Name:', False); 

 UserInputsPage.Add('Company,Organization:', False);

 UserInputsPage.Add('Email Name:', False);

 UserInputsPage.Add('Serial Number:', False);

end;


[Registry]

Root: HKCU; Subkey: "Software\Power Partners\abc"; \

    ValueType: string; ValueName: "Name"; ValueData: "{code:GetInstallName}"

Root: HKCU; Subkey: "Software\Power Partners\abc"; \

    ValueType: string; ValueName: "UserCompany"; ValueData: "{code:GetUserCompany}"

 Root: HKCU; Subkey: "Software\Power Partners\abc"; \

    ValueType: string; ValueName: "UserEmail"; ValueData: "{code:GetUserEmail}"

Root: HKCU; Subkey: "Software\Power Partners\abc"; \

    ValueType: string; ValueName: "sn"; ValueData: "{code:GetUserSerialNo}"