Listar software instalado y su ruta de instalación, haciendo uso del registro del sistema con VB.NET y C# Fecha: 10/Nov/2004 (Lunes 09 de noviembre de 2004) |
Este código permite hacer un listado del software instalado, y si esta disponible, su ruta de instalación, haciendo uso del registro del sistema, consultando las claves de registro con información de desinstalación
En los ejemplos se supone la existencia de un ListView llamado lst_instaladosCódigo en Visual Basic:
' Importante, para no tener que usar todo el nombre calificado hay que importar el siguiente espacion de nombres Imports Microsoft.Win32 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim sRegKey As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Dim Keys As RegistryKey = Registry.LocalMachine.OpenSubKey(sRegKey) For Each sNombreKey As String In Keys.GetSubKeyNames Dim Key As RegistryKey = Keys.OpenSubKey(sNombreKey) If Key.GetValue("DisplayName") <> "" Then lst_instalados.Items.Add(Key.GetValue("DisplayName")) lst_instalados.Items(lst_instalados.Items.Count - 1).SubItems.Add(IIf(Key.GetValue("InstallLocation") = "", "", Key.GetValue("InstallLocation"))) End If Next End Sub
Código en C#:
' Importante, para no tener que usar todo el nombre calificado hay que importar el siguiente espacion de nombres using Microsoft.Win32; private void Form1_Load(object sender, System.EventArgs e){ String sRegKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; RegistryKey Keys = Registry.LocalMachine.OpenSubKey(sRegKey); foreach(String sNombreKey in Keys.GetSubKeyNames()){ RegistryKey Key = Keys.OpenSubKey (sNombreKey); if(Key.GetValue("DisplayName") != null){ lst_instalados.Items.Add(Key.GetValue("DisplayName").ToString()); lst_instalados.Items[lst_instalados.Items.Count - 1].SubItems.Add(Key.GetValue("InstallLocation") == null?"":Key.GetValue("InstallLocation").ToString()); } } }Si este código te fue útil no olvides darle una calificación en PanoramaBox :)