Listing All the Installed Softwares in Computer using .Net

5:26 AM
We will be Accomplishing using the Windows Registry.

Main Registry to work here is : "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"

Just Write Down The Following Code the Form's Loading Event (Form Contains No Control):

C#.NET

private void Form1_Load(object sender, EventArgs e)
        {
            string SoftwareKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products";
            RegistryKey rk = default(RegistryKey);
            rk = Registry.LocalMachine.OpenSubKey(SoftwareKey);
            //string skname = null;
            string sname = string.Empty;

            ListView ListView1 = new ListView();
            this.Controls.Add(ListView1);
            ListView1.Dock = DockStyle.Fill;

            ListView1.View = View.Details;
            ListView1.Columns.Add("Installed Software");
            
            foreach (string skname in rk.GetSubKeyNames())
            {
                
                try
                {
                    sname = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey("InstallProperties").GetValue("DisplayName").ToString();
                    ListView1.Items.Add(sname);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);


        }


VB.NET
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



Output:


Downloads:


vb.net : Download
c#.net : Download

0 comments:

Post a Comment