Inno 设置输入框,用于输出到注册表中的序列号



我使用了来自成员 TLama 的答案中的代码。我认为这正是我所需要的,但我有两个问题:

我需要注册表中编辑框中的序列号。这是我尝试过的:

Root: "HKCU"; Subkey: "SoftwaremyProg"; ValueType: string; ValueName: "Serial"; ValueData: "{code:GetSerialNumber}"; Flags: deletevalue uninsdeletevalue

但是Inno给了我一个错误。TLama在他的回答中写道(来自上面的链接),称GetSerialNumber部分就足够了,但我确实如此。错。。。

另一个问题:是否可以用示例代码预填充串行框? 例如 12345 或 abcde?我只使用一个带有 10 个字符的输入框......

希望有人能帮忙,对不起我的英语;)

您可以使用UserInfoPage然后{userinfoserial}但是如果您想使用TLama的解决方案,那么您应该稍微更改NextButtonClick函数:

function NextButtonClick(CurPageID: Integer): Boolean;
var
S: string;
I: Integer;
begin
Result := True;
if CurPageID = SerialPage.ID then
begin
S := '';
for I := 0 to High(SerialEdits) do
S := S + SerialEdits[I].Text + '-';
SetLength(S, Length(S)-1);
RegWriteStringValue(HKEY_CURRENT_USER, 'SoftwaremyProg',
'Serial', S);
end;
end;

脚本的 varSerialEdits: array of TEdit;必须设置为全局。您可能还想稍后将密钥添加到注册表(例如,在ssDone或其他情况下使用CurStepChanged)或编写自己的函数,该函数将Serial作为String传递给Result,然后在Registry Section中调用它。

最新更新