Inno setup Inno设置串行代码的输入框,并将输出到注册表
我使用了来自成员TLama的代码。我想这正是我需要的,但我有两个问题: 我需要注册表中编辑框中的序列号。这就是我所尝试的:Inno setup Inno设置串行代码的输入框,并将输出到注册表,inno-setup,inputbox,serial-number,custom-pages,Inno Setup,Inputbox,Serial Number,Custom Pages,我使用了来自成员TLama的代码。我想这正是我需要的,但我有两个问题: 我需要注册表中编辑框中的序列号。这就是我所尝试的: Root: "HKCU"; Subkey: "Software\myProg"; ValueType: string; ValueName: "Serial"; ValueData: "{code:GetSerialNumber}"; Flags: deletevalue uninsdeletevalue 但是Inno给了我一个错误。特拉玛在他的回答中写道(从上面的链接)
Root: "HKCU"; Subkey: "Software\myProg"; ValueType: string; ValueName: "Serial"; ValueData: "{code:GetSerialNumber}"; Flags: deletevalue uninsdeletevalue
但是Inno给了我一个错误。特拉玛在他的回答中写道(从上面的链接),调用GetSerialNumber
部分就足够了,但我做错了
另一个问题:是否可以用示例代码预先填充serialbox?例如12345或abcde?我只使用了一个10个字符的输入框
希望有人能帮忙,为我的英语不好而抱歉;) 您可以使用,然后使用{userinfoserial}
,但如果您想使用,则应稍微更改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, 'Software\myProg',
'Serial', S);
end;
end;
Var
SerialEdits:TEdit的数组代码>必须设置为脚本的全局。您也可能希望稍后将键添加到注册表(例如,当ssDone
或其他东西时,使用CurStepChanged
或编写自己的函数,将Serial
作为String
传递到Result
,然后在注册表部分调用它,该序列页是一个用于多次编辑的脚本。它不打算用于其他任何东西,除了它是写什么。但是如果您仍然决定使用它,那么您可以创建一个单用途脚本常量getter,它将返回我的GetSerialNumber
函数调用的结果。或者修改GetSerialNumber
函数以匹配脚本化常量原型。在安装之前写入注册表对用户不公平。我现在使用了CheckSerial(UserInfoPage)功能。有没有可能,框中已经填充了一个代码,用户可以更改它?@Michael,为此,您可以指定指令的值。数小时的搜索和如此简单的解决方案。。。非常感谢,现在一切正常:)