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)
Autor: Mario Felix Guerrero, [email protected]

 


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_instalados

Có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 :)

 


ir al índice