Lenguaje de programación Visual C# .Net
Función que obtiene en una lista todas las versiones de .Net Framework instaladas en el equipo.
public List obtenerVersionesNETFramework()
{
List listaVersiones = new List();
using (RegistryKey claveVersiones =
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
foreach (string claveVersionNETFramework in claveVersiones.GetSubKeyNames())
{
if (claveVersionNETFramework.StartsWith("v"))
{
RegistryKey versionKey = claveVersiones.OpenSubKey(claveVersionNETFramework);
string version = (string)versionKey.GetValue("Version", "");
string servicePack = versionKey.GetValue("SP", "").ToString();
string install = versionKey.GetValue("Install", "").ToString();
if (install == "") //si no se obtiene versión lo haremos más adelante
listaVersiones.Add(claveVersionNETFramework + " " + version);
else
{
if (servicePack != "" && install == "1")
{
listaVersiones.Add(claveVersionNETFramework + " " + version + " SP" + servicePack);
}
}
if (version != "")
{
continue;
}
foreach (string subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
version = (string)subKey.GetValue("Version", "");
if (version != "")
servicePack = subKey.GetValue("SP", "").ToString();
install = subKey.GetValue("Install", "").ToString();
if (install == "")
listaVersiones.Add(claveVersionNETFramework + " " + version);
else
{
if (servicePack != "" && install == "1")
{
listaVersiones.Add(" " + subKeyName + " " + version + " SP" + servicePack);
}
else if (install == "1")
{
listaVersiones.Add(" " + subKeyName + " " + version);
}
}
}
}
}
}
return listaVersiones;
}
Ejemplo de uso:
List listaVersiones = new List();
listaVersiones = obtenerVersionesNETFramework();
string versiones = "";
foreach (string version in listaVersiones)
{
versiones = versiones + ", " + version;
}
MessageBox.Show (versiones);
}
Publicado el: 2013-07-31