Following code shows how to get a list of programs into listview using wmi query. Drop 2 buttons and a listview into a Windows Form and test it
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListView1.View = View.Details
ListView1.Columns.AddRange(New ColumnHeader() {New ColumnHeader() With {.Text = "Caption", .Width = 150}, _
New ColumnHeader() With {.Text = "Vendor", .Width = 150}, _
New ColumnHeader() With {.Text = "Version", .Width = 200}})
End Sub
Private Sub btnGetProgram_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetProgram.Click
Dim searcher As New ManagementObjectSearcher("root\cimv2", "SELECT * FROM Win32_Product")
For Each queryObj As ManagementObject In searcher.Get()
Dim li As ListViewItem = ListView1.Items.Add(queryObj.Item("Caption").ToString)
li.SubItems.Add(queryObj.Item("Vendor").ToString)
li.SubItems.Add(queryObj.Item("Version").ToString)
Next
End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
Dim searcher As New ManagementObjectSearcher("root\cimv2", String.Format("SELECT * FROM Win32_Product where caption='{0}' and Version ='{1}'", ListView1.SelectedItems(0).Text, ListView1.SelectedItems(0).SubItems(2).Text))
For Each queryObj As ManagementObject In searcher.Get()
queryObj.InvokeMethod("Uninstall", Nothing)
Next
End Sub
End Class
3f2beb53-6c5d-41a8-8af8-01068f1db755|2|5.0