시스템에 설치된 .NET 버전 알아내기
출처 : InnoSetup 뉴스그룹
var
UserPage: TInputOptionWizardPage;
sDet: String;
sDet2: String;
S: String;
nOK: Integer;
bDeft: Boolean;
function InitializeSetup() : Boolean;
var
nVersions: Integer;
Names: TArrayOfString;
I: Integer;
begin
S := '';
nVersions := 0
nOK := 0
bDeft := true;
if RegGetSubKeyNames(HKEY_LOCAL_MACHINE,
'SOFTWARE\Microsoft\.NETFramework\PendingUpdates', Names) then
begin
for I := 0 to GetArrayLength(Names)-1
do
if Uppercase(Copy(Names[I], 1, 1)) = 'V' then
begin
S := S + Copy(Names[I], 2, 999) + ' ';
nVersions := nVersions + 1;
StringChange(Names[I], '.', '');
if StrtoIntDef(Copy(Names[I], 2, 2), 0) >= 11 then
begin
nOK := nOK + 1
end
end
end
MsgBox('List of values:'#13#10#13#10 + S, mbInformation, MB_OK);
if nOK = 0 then
begin
if nVersions = 0 then
begin
sDet := 'Setup has determined no .NET runtime is installed.';
end
else
begin
sDet := 'Setup has determined .NET runtime prior to 1.1 is
installed.';
end
sDet2 := 'This program requires Microsoft .NET runtime 1.1 or
better in order to run.'
end
else
begin
sDet := 'Setup has determined an appropriate version of .NET
runtime is installed.';
sDet2 := 'You have the required version of Microsoft .NET runtime
already installed.'
bDeft := false;
end
Result := true;
end;
procedure InitializeWizard;
begin
UserPage := CreateInputOptionPage(wpWelcome,
'Microsoft .NET Framework Detection', sDet,
sDet2, false, false);
UserPage.Add('Show Location of .NET Runtime Setup when this setup has
completed');
UserPage.Values[0] := bDeft;
end;
|