@@ -263,6 +263,15 @@ begin
263263 Result := Dependency_String(' (x86)' , ' (x64)' , ' (arm64)' );
264264end ;
265265
266+ function Dependency_ArchHKLM : Integer;
267+ begin
268+ if Dependency_IsArm64 or Dependency_IsX64 then begin
269+ Result := HKLM64;
270+ end else begin
271+ Result := HKLM32;
272+ end ;
273+ end ;
274+
266275function Dependency_PassiveOrQuiet (const Passive, Quiet: String): String;
267276begin
268277 if WizardSilent then begin
650659 PackedVersion: Int64;
651660begin
652661 // https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
653- if RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\' + Dependency_String(' x86' , ' x64' , ' arm64' ), ' Version' , Version) and (Copy(Version, 1 , 1 ) = ' v' ) then begin
662+ if RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\' + Dependency_String(' x86' , ' x64' , ' arm64' ), ' Version' , Version) and (Copy(Version, 1 , 1 ) = ' v' ) then begin
654663 Delete(Version, 1 , 1 );
655664 end ;
656665 if not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(14 , 51 , 36247 , 0 )) < 0 ) then begin
681690 PackedVersion: Int64;
682691begin
683692 // https://www.microsoft.com/en-us/download/details.aspx?id=30438
684- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(10 , 50 , 4000 , 0 )) < 0 ) then begin
693+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(10 , 50 , 4000 , 0 )) < 0 ) then begin
685694 Dependency_Add(' sql2008express' + Dependency_ArchSuffix + ' .exe' ,
686695 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
687696 ' SQL Server 2008 R2 Service Pack 2 Express' ,
696705 PackedVersion: Int64;
697706begin
698707 // https://www.microsoft.com/en-us/download/details.aspx?id=56042
699- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(11 , 0 , 7001 , 0 )) < 0 ) then begin
708+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(11 , 0 , 7001 , 0 )) < 0 ) then begin
700709 Dependency_Add(' sql2012express' + Dependency_ArchSuffix + ' .exe' ,
701710 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
702711 ' SQL Server 2012 Service Pack 4 Express' ,
711720 PackedVersion: Int64;
712721begin
713722 // https://www.microsoft.com/en-us/download/details.aspx?id=57473
714- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(12 , 0 , 6024 , 0 )) < 0 ) then begin
723+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(12 , 0 , 6024 , 0 )) < 0 ) then begin
715724 Dependency_Add(' sql2014express' + Dependency_ArchSuffix + ' .exe' ,
716725 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
717726 ' SQL Server 2014 Service Pack 3 Express' ,
726735 PackedVersion: Int64;
727736begin
728737 // https://www.microsoft.com/en-us/download/details.aspx?id=103447
729- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(13 , 0 , 6404 , 1 )) < 0 ) then begin
738+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(13 , 0 , 6404 , 1 )) < 0 ) then begin
730739 Dependency_Add(' sql2016express' + Dependency_ArchSuffix + ' .exe' ,
731740 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
732741 ' SQL Server 2016 Service Pack 3 Express' ,
741750 PackedVersion: Int64;
742751begin
743752 // https://www.microsoft.com/en-us/download/details.aspx?id=55994
744- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(14 , 0 , 0 , 0 )) < 0 ) then begin
753+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(14 , 0 , 0 , 0 )) < 0 ) then begin
745754 Dependency_Add(' sql2017express' + Dependency_ArchSuffix + ' .exe' ,
746755 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
747756 ' SQL Server 2017 Express' ,
756765 PackedVersion: Int64;
757766begin
758767 // https://www.microsoft.com/en-us/download/details.aspx?id=101064
759- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(15 , 0 , 0 , 0 )) < 0 ) then begin
768+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(15 , 0 , 0 , 0 )) < 0 ) then begin
760769 Dependency_Add(' sql2019express' + Dependency_ArchSuffix + ' .exe' ,
761770 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
762771 ' SQL Server 2019 Express' ,
771780 PackedVersion: Int64;
772781begin
773782 // https://www.microsoft.com/en-us/download/details.aspx?id=104781
774- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(16 , 0 , 1000 , 6 )) < 0 ) then begin
783+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(16 , 0 , 1000 , 6 )) < 0 ) then begin
775784 Dependency_Add(' sql2022express' + Dependency_ArchSuffix + ' .exe' ,
776785 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
777786 ' SQL Server 2022 Express' ,
786795 PackedVersion: Int64;
787796begin
788797 // https://www.microsoft.com/en-us/sql-server/sql-server-downloads
789- if not RegQueryStringValue(HKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(17 , 0 , 1000 , 7 )) < 0 ) then begin
798+ if not RegQueryStringValue(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\CurrentVersion' , ' CurrentVersion' , Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(17 , 0 , 1000 , 7 )) < 0 ) then begin
790799 Dependency_Add(' sql2025express' + Dependency_ArchSuffix + ' .exe' ,
791800 Dependency_PassiveOrQuiet(' /QS' , ' /Q' ) + ' /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER' ,
792801 ' SQL Server 2025 Express' ,
798807procedure Dependency_AddSqlOleDb19 ;
799808begin
800809 // https://learn.microsoft.com/en-us/sql/connect/oledb/download-oledb-driver-for-sql-server
801- if not RegValueExists(HKLM , ' SOFTWARE\Microsoft\MSOLEDBSQL19' , ' InstalledVersion' ) then begin
810+ if not RegValueExists(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\MSOLEDBSQL19' , ' InstalledVersion' ) then begin
802811 Dependency_Add(' msoledbsql' + Dependency_ArchSuffix + ' .msi' ,
803812 ' /qn /norestart IACCEPTMSOLEDBSQLLICENSETERMS=YES' ,
804813 ' Microsoft OLE DB Driver 19 for SQL Server' + Dependency_ArchTitle,
810819procedure Dependency_AddSqlOdbc18 ;
811820begin
812821 // https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server
813- if not RegKeyExists(HKLM , ' SOFTWARE\ODBC\ODBCINST.INI\ODBC Driver 18 for SQL Server' ) then begin
822+ if not RegKeyExists(Dependency_ArchHKLM , ' SOFTWARE\ODBC\ODBCINST.INI\ODBC Driver 18 for SQL Server' ) then begin
814823 Dependency_Add(' msodbcsql' + Dependency_ArchSuffix + ' .msi' ,
815824 ' /qn /norestart IACCEPTMSODBCSQLLICENSETERMS=YES' ,
816825 ' Microsoft ODBC Driver 18 for SQL Server' + Dependency_ArchTitle,
822831procedure Dependency_AddWebView2 ;
823832begin
824833 // https://developer.microsoft.com/en-us/microsoft-edge/webview2
825- if not (RegValueExists(HKLM, Dependency_String( ' SOFTWARE' , ' SOFTWARE\WOW6432Node ' , ' SOFTWARE\WOW6432Node ' ) + ' \Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}' , ' pv' )
834+ if not (RegValueExists(HKLM32, ' SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}' , ' pv' )
826835 or RegValueExists(HKCU, ' SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}' , ' pv' )) then begin
827836 Dependency_Add(' MicrosoftEdgeWebview2Setup.exe' ,
828837 ' /silent /install' ,
835844procedure Dependency_AddAccessDatabaseEngine2016 ;
836845begin
837846 // https://www.microsoft.com/en-us/download/details.aspx?id=54920
838- if not RegKeyExists(HKLM , ' SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\ACE' ) then begin
847+ if not RegKeyExists(Dependency_ArchHKLM , ' SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\ACE' ) then begin
839848 Dependency_Add(' AccessDatabaseEngine2016' + Dependency_ArchSuffix + ' .exe' ,
840849 ' /quiet' ,
841850 ' Microsoft Access Database Engine 2016' + Dependency_ArchTitle,
847856procedure Dependency_AddVSTORuntime ;
848857begin
849858 // https://learn.microsoft.com/en-us/visualstudio/vsto/how-to-install-the-visual-studio-tools-for-office-runtime-redistributable
850- if not RegKeyExists(HKLM, Dependency_String( ' SOFTWARE' , ' SOFTWARE\WOW6432Node ' , ' SOFTWARE\WOW6432Node ' ) + ' \Microsoft\VSTO Runtime Setup\v4R' ) then begin
859+ if not RegKeyExists(HKLM32, ' SOFTWARE\Microsoft\VSTO Runtime Setup\v4R' ) then begin
851860 Dependency_Add(' vstor_redist.exe' ,
852861 ' /q /norestart' ,
853862 ' Visual Studio 2010 Tools for Office Runtime' ,
0 commit comments