Hallo Leute.
Ich habe ein Programm, was die Registry ausliest und sie 1. in ein Tree list Element einträgt und 2. alles Pfade in einen String schreibt, der dann in eine Textdatei geschrieben wird.
Ohne das schreiben in einen String und dann in die Textdatei, braucht das Programm so um die 20 Sekunden. Mit schreiben so 5 Stunden und wenn ich verduche jede Zeile in eine Textbox schreiben zu lassen, dann dauert das über 1 Tag. Wie kann ich es also schaffen alle Pfade untereiander in einen String zu bekommen, den ich dann möglichst schnell in eine Textdatei schreiben kann.
Also was da Performancetechnisch am besten geht.
Ich hoffe ihr versteht mein Anliegen.
Hier mal der Code:
Ich hoffe ihr könnt mir helfen.
Lg shutdown
Ich habe ein Programm, was die Registry ausliest und sie 1. in ein Tree list Element einträgt und 2. alles Pfade in einen String schreibt, der dann in eine Textdatei geschrieben wird.
Ohne das schreiben in einen String und dann in die Textdatei, braucht das Programm so um die 20 Sekunden. Mit schreiben so 5 Stunden und wenn ich verduche jede Zeile in eine Textbox schreiben zu lassen, dann dauert das über 1 Tag. Wie kann ich es also schaffen alle Pfade untereiander in einen String zu bekommen, den ich dann möglichst schnell in eine Textdatei schreiben kann.
Also was da Performancetechnisch am besten geht.
Ich hoffe ihr versteht mein Anliegen.
Hier mal der Code:
VB.NET-Quellcode
- Imports Microsoft.Win32
- Public Class frm_main
- Dim counter As New Integer
- Dim text As String
- Private Sub frm_main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- End Sub
- Private Function getnodes(ByVal regkey As RegistryKey) As TreeNode
- Dim parts() As String = regkey.Name.Split("")
- Dim temp As New TreeNode(parts.Last)
- Dim subkey As RegistryKey
- Dim fullkey As String
- If regkey.SubKeyCount > 0 Then
- For Each keyName As String In regkey.GetSubKeyNames
- Try
- subkey = regkey.OpenSubKey(keyName)
- temp.Nodes.Add(getnodes(subkey))
- fullkey = regkey.Name + "" + keyName
- counter = counter + 1
- text = fullkey + vbCrLf + text
- ' ProgressBar1.Value += 0.0001 '0.0000371377491107366 2692678
- Catch ex As Exception
- End Try
- Next
- End If
- Return temp
- End Function
- Private Sub frm_main_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
- regTree.Height = Me.Height - 60
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- counter = 0
- Dim rootnode As TreeNode
- rootnode = getnodes(My.Computer.Registry.CurrentUser)
- regTree.Nodes.Add(rootnode)
- 'MsgBox("Current User fertig")
- rootnode = getnodes(My.Computer.Registry.CurrentConfig)
- regTree.Nodes.Add(rootnode)
- ' MsgBox("Current Config fertig")
- rootnode = getnodes(My.Computer.Registry.ClassesRoot)
- regTree.Nodes.Add(rootnode)
- ' MsgBox("Classes Root fertig")
- rootnode = getnodes(My.Computer.Registry.Users)
- regTree.Nodes.Add(rootnode)
- ' MsgBox("Users fertig")
- rootnode = getnodes(My.Computer.Registry.LocalMachine)
- regTree.Nodes.Add(rootnode)
- Me.TopMost = True
- My.Computer.FileSystem.WriteAllText("C:\Users\leon\Documents\ArcaniA - Gothic 4\FileList.txt", text, True)
- MsgBox("fertig um " & Format(Now(), "hh:mm"))
- Label1.Text = counter
- End Sub
- End Class
Ich hoffe ihr könnt mir helfen.
Lg shutdown