Servus @all
Habe die Software meines PCs ausgelesen und mittels ListView angezeigt. Möchte nun diese Liste in ein txt schreiben. Dabei hängt sich das Progi bei .ListCount und .List auf.
Der rote Code wurde bis jetzt immer für eine ListBox verwendet und daher nicht mehr mit ListView kompatibel. Da ich leider totaler VB-Anfänger bin weiss ich nun nicht wie ich bei ListView dies realisieren soll.
Weiters bräuchte ich nur die LINKE Spalte ausgelesen!
Kann wer helfen?
Bin für jede HILFE sehr dankbar
DANKE.
mfg alex
Private Sub Form_Load()
' Liste der deinstallierbaren Software
Dim SO As SearchOptions
Dim Gefunden() As String
Dim i As Integer
Dim Daten() As String
Dim DisplayName As String
Dim RegKey As String
Dim Folder As String
Dim itemX As ListItem
RegKey = "Software\Microsoft\Windows\" & _
"CurrentVersion\Uninstall"
With ListView1
.ListItems.Clear
' vb@rchiv-Tipp
'Durchsuchen der Registry wird benötigt!
' Alle Einträge im Schlüssel
' Software\Microsoft\Windows\CurrentVersion\Uninstall
' ermitteln
With SO
.HowToSearch = StringExists
.SearchMainKey = HKEY_LOCAL_MACHINE
.SearchString = "UninstallString"
.StartSearchPath = RegKey
.SearchSubfolders = True
.FindKeys = False
.FindValueNames = True
.FindValues = False
End With
' Suche starten
FindString SO, Gefunden
On Error Resume Next
For i = 0 To UBound(Gefunden)
Daten = Split(Gefunden(i), vbCrLf)
' SubKey
Folder = Mid$(Daten(0), InStrRev(Daten(0), "\") + 1)
' DisplayName ermitteln
DisplayName = Get_ValueString(HKEY_LOCAL_MACHINE, _
RegKey & "\" & Daten(1), "DisplayName")
If DisplayName = "" Then DisplayName = Folder
' ListView1 Daten in ein .txt schreiben
Dim Filenum As Integer
Dim j As Integer
Filenum = FreeFile
Open "software.txt" For Output As #Filenum
For j = 0 To ListView1.ListCount - 1
Print #Filenum, ListView1.List(j)
Next j
Close #F
Set itemX = .ListItems.Add(, Daten(0), DisplayName)
itemX.SubItems(1) = Daten(2)
Next i
End With
End Sub
Habe die Software meines PCs ausgelesen und mittels ListView angezeigt. Möchte nun diese Liste in ein txt schreiben. Dabei hängt sich das Progi bei .ListCount und .List auf.
Der rote Code wurde bis jetzt immer für eine ListBox verwendet und daher nicht mehr mit ListView kompatibel. Da ich leider totaler VB-Anfänger bin weiss ich nun nicht wie ich bei ListView dies realisieren soll.
Weiters bräuchte ich nur die LINKE Spalte ausgelesen!
Kann wer helfen?
Bin für jede HILFE sehr dankbar
DANKE.
mfg alex
Private Sub Form_Load()
' Liste der deinstallierbaren Software
Dim SO As SearchOptions
Dim Gefunden() As String
Dim i As Integer
Dim Daten() As String
Dim DisplayName As String
Dim RegKey As String
Dim Folder As String
Dim itemX As ListItem
RegKey = "Software\Microsoft\Windows\" & _
"CurrentVersion\Uninstall"
With ListView1
.ListItems.Clear
' vb@rchiv-Tipp
'Durchsuchen der Registry wird benötigt!
' Alle Einträge im Schlüssel
' Software\Microsoft\Windows\CurrentVersion\Uninstall
' ermitteln
With SO
.HowToSearch = StringExists
.SearchMainKey = HKEY_LOCAL_MACHINE
.SearchString = "UninstallString"
.StartSearchPath = RegKey
.SearchSubfolders = True
.FindKeys = False
.FindValueNames = True
.FindValues = False
End With
' Suche starten
FindString SO, Gefunden
On Error Resume Next
For i = 0 To UBound(Gefunden)
Daten = Split(Gefunden(i), vbCrLf)
' SubKey
Folder = Mid$(Daten(0), InStrRev(Daten(0), "\") + 1)
' DisplayName ermitteln
DisplayName = Get_ValueString(HKEY_LOCAL_MACHINE, _
RegKey & "\" & Daten(1), "DisplayName")
If DisplayName = "" Then DisplayName = Folder
' ListView1 Daten in ein .txt schreiben
Dim Filenum As Integer
Dim j As Integer
Filenum = FreeFile
Open "software.txt" For Output As #Filenum
For j = 0 To ListView1.ListCount - 1
Print #Filenum, ListView1.List(j)
Next j
Close #F
Set itemX = .ListItems.Add(, Daten(0), DisplayName)
itemX.SubItems(1) = Daten(2)
Next i
End With
End Sub