Start New Discussion within our Software Development Community
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        Dim SoftwareKey As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"
        Dim rk As RegistryKey
        rk = Registry.LocalMachine.OpenSubKey(SoftwareKey)
        Dim skname As String
        Dim sname As String = String.Empty
 
        Dim ListView1 As New ListView
        Me.Controls.Add(ListView1)
        ListView1.Dock = DockStyle.Fill
 
        ListView1.View = View.Details
        ListView1.Columns.Add("Installed Software")
 
        For Each skname In rk.GetSubKeyNames
            Try
                sname = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey("InstallProperties").GetValue("DisplayName")
                ListView1.Items.Add(sname)
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Next
 
        ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
 
    End Sub
The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.