1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- [Code]
- type
- NetFXType = (NetFx10, NetFx11, NetFx20, NetFx30, NetFx35, NetFx40Client, NetFx40Full, NetFx4x);
- const
- netfx11plus_reg = 'Software\Microsoft\NET Framework Setup\NDP\';
- function dotnetfxinstalled(version: NetFXType; lcid: String): Boolean;
- var
- regVersion: Cardinal;
- regVersionString: String;
- begin
- if (lcid <> '') then
- lcid := '\' + lcid;
- case version of
- NetFx10:
- Result := RegQueryStringValue(HKLM, 'Software\Microsoft\.NETFramework\Policy\v1.0\3705', 'Install', regVersionString) and (regVersionString <> '');
- NetFx11:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'Install', regVersion) and (regVersion <> 0);
- NetFx20:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'Install', regVersion) and (regVersion <> 0);
- NetFx30:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0\Setup' + lcid, 'InstallSuccess', regVersion) and (regVersion <> 0);
- NetFx35:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'Install', regVersion) and (regVersion <> 0);
- NetFx40Client:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Install', regVersion) and (regVersion <> 0);
- NetFx40Full:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Install', regVersion) and (regVersion <> 0);
- NetFx4x:
- Result := RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Release', regVersion) and (regVersion >= 378389); // 4.5.0+
- end;
- end;
- function dotnetfxspversion(version: NetFXType; lcid: String): Integer;
- var
- regVersion: Cardinal;
- begin
- if (lcid <> '') then
- lcid := '\' + lcid;
- case version of
- NetFx10:
- // not supported
- regVersion := -1;
- NetFx11:
- if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'SP', regVersion)) then
- regVersion := -1;
- NetFx20:
- if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'SP', regVersion)) then
- regVersion := -1;
- NetFx30:
- if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0' + lcid, 'SP', regVersion)) then
- regVersion := -1;
- NetFx35:
- if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'SP', regVersion)) then
- regVersion := -1;
- NetFx40Client:
- if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Servicing', regVersion)) then
- regVersion := -1;
- NetFx40Full:
- if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Servicing', regVersion)) then
- regVersion := -1;
- NetFx4x:
- if (RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Release', regVersion)) then begin
- if (regVersion >= 528040) then
- regVersion := 80 // 4.8.0+
- else if (regVersion >= 461808) then
- regVersion := 72 // 4.7.2+
- else if (regVersion >= 461308) then
- regVersion := 71 // 4.7.1+
- else if (regVersion >= 460798) then
- regVersion := 70 // 4.7.0+
- else if (regVersion >= 394802) then
- regVersion := 62 // 4.6.2+
- else if (regVersion >= 394254) then
- regVersion := 61 // 4.6.1+
- else if (regVersion >= 393295) then
- regVersion := 60 // 4.6.0+
- else if (regVersion >= 379893) then
- regVersion := 52 // 4.5.2+
- else if (regVersion >= 378675) then
- regVersion := 51 // 4.5.1+
- else if (regVersion >= 378389) then
- regVersion := 50 // 4.5.0+
- else
- regVersion := -1;
- end;
- end;
- Result := regVersion;
- end;
|