按照虎版的脚本修改了一下,获取硬盘序列号如下,请虎版和各位朋友指正
#ifdef Unicode
#define PChar "PAnsiChar"
#define String "AnsiString"
#else
#define PChar "PChar"
#define String "String"
#endif
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
[Files]
Source: "{tmp}\ISID.dll"; Flags: dontcopy
[Code]
function GetHDDSerial(Drive: Char; output: String):Integer;external 'GetHDDSerial@files:ISID.dll stdcall';
function GetHDD: string;//获取硬盘序列号函数
var
ClassName: {#String};
Ret: Integer;
f: Char;
begin
SetLength(ClassName, 256);
Ret := GetHDDSerial(f,{#PChar}(ClassName));
Result := Copy(ClassName, 1 , Ret);
end;
procedure InitializeWizard();
var
labMacAdd: TLabel;
begin
WizardForm.WelcomeLabel2.Height := ScaleY(200);
labMacAdd := TLabel.Create(WizardForm);
with labMacAdd do
begin
Parent := WizardForm.WelcomePage;
Caption := '硬盘序列号: ' + Uppercase(GetHDD); //显示MAC地址并转换为大写字母(Uppercase转换为大写字母)
Transparent := False;
Left := ScaleX(174);
Top := ScaleY(280);
Width := ScaleX(300);
Height := ScaleY(14);
end;
end;