Como dices:todas las instancias instaladas se pueden encontrar en:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
Usando los valores de estas instancias puedes ir a:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{INSTANCE DATA}\MSSQLServer\CurrentVersion
donde {DATOS DE LA INSTANCIA} son los datos de las claves en la primera configuración del registro.
Por ejemplo:tengo una computadora que contiene estas claves:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL]
"MSSQLSERVER2008"="MSSQL10_50.MSSQLSERVER2008"
"SQLEXPRESS2008R2"="MSSQL10_50.SQLEXPRESS2008R2"
=> lo que significa que hay 2 instancias:la versión se puede encontrar aquí:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER2008\MSSQLServer\CurrentVersion]
"CurrentVersion"="10.50.4000.0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQLServer\CurrentVersion]
"CurrentVersion"="10.50.4000.0"