如何使用my.settings

时间:2017-03-31 15:00:55

标签: vb.net

我尝试使用MY.SETTINGS保存列表框中的所有项目 并在负载时再次检索 但似乎我犯了一个错误,但我无法弄清楚是什么。

给出2错误

这是错误

错误3' itemmd5'不是MediaAdsAntivirus.My.MySettings'的成员。

错误2' myitems'不是MediaAdsAntivirus.My.MySettings'的成员。

对于这个错误我只是弄清楚我忘了在设置上添加它

但现在我刚刚遇到一个新错误 这是我的新错误 错误2类型的值' System.Windows.Forms.ListBox.ObjectCollection'无法转换为' String'。

我需要在loadfrom上加载它们 如何再次列出所有项目

这是我的代码:

Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Text
Imports System.Net


Public Class form15
Dim md5hashindexer = 1
Dim md5namesave = "Hashes"

#Region "Atalhos para o principal hash_generator função"


Function md5_hash(ByVal file_name As String)

    Return hash_generator("md5", file_name)

End Function

Function sha_1(ByVal file_name As String)

    Return hash_generator("sha1", file_name)

End Function

Function sha_256(ByVal file_name As String)

    Return hash_generator("sha256", file_name)

End Function

#End Region


Function hash_generator(ByVal hash_type As String, ByVal file_name As String)


    Dim hash
    If hash_type.ToLower = "md5" Then

        hash = MD5.Create
    ElseIf hash_type.ToLower = "sha1" Then

        hash = SHA1.Create()
    ElseIf hash_type.ToLower = "sha256" Then

        hash = SHA256.Create()
    Else
        MsgBox("Type de hash inconnu : " & hash_type, MsgBoxStyle.Critical)
        Return False
    End If


    Dim hashValue() As Byte


    Dim fileStream As FileStream = File.OpenRead(file_name)

    fileStream.Position = 0

    hashValue = hash.ComputeHash(fileStream)

    Dim hash_hex = PrintByteArray(hashValue)


    fileStream.Close()


    Return hash_hex

End Function


Public Function PrintByteArray(ByVal array() As Byte)

    Dim hex_value As String = ""


    Dim i As Integer
    For i = 0 To array.Length - 1


        hex_value += array(i).ToString("X2")

    Next i


    Return hex_value.ToLower

End Function


Private Sub BT_Parcourir_Click(sender As System.Object, e As System.EventArgs) Handles BT_Parcourir.Click


    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then


        Dim path As String = OpenFileDialog1.FileName

        TB_path.Text = path


        LB_md5.Text = md5_hash(path)
        LB_sha1.Text = sha_1(path)
        LB_sha256.Text = sha_256(path)
        ListBox1.Items.Add(LB_md5.Text)
        ListBox1.SelectedIndex += 1
        Dim itemmd5 = LB_sha256.Text
        Dim itemname = md5namesave + md5hashindexer
        For Each line As String In ListBox1.Items
            itemmd5 = My.Settings.myitems
            My.Settings.itemmd5 = ListBox1.Items

        Next
    End If



End Sub


Private Sub LB_sha256_Click(sender As Object, e As EventArgs) Handles LB_sha256.Click

End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs)

End Sub

Private Sub form15_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub
End Class

1 个答案:

答案 0 :(得分:0)

我最终决定保存在txt文件中并再次从中加载数据 这是工作代码

Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Text
Imports System.Net


Public Class form15
Dim md5hashindexer = 1


#Region "Atalhos para o principal hash_generator função"


Function md5_hash(ByVal file_name As String)

    Return hash_generator("md5", file_name)

End Function

Function sha_1(ByVal file_name As String)

    Return hash_generator("sha1", file_name)

End Function

Function sha_256(ByVal file_name As String)

    Return hash_generator("sha256", file_name)

End Function

#End Region


Function hash_generator(ByVal hash_type As String, ByVal file_name As String)


    Dim hash
    If hash_type.ToLower = "md5" Then

        hash = MD5.Create
    ElseIf hash_type.ToLower = "sha1" Then

        hash = SHA1.Create()
    ElseIf hash_type.ToLower = "sha256" Then

        hash = SHA256.Create()
    Else
        MsgBox("Type de hash inconnu : " & hash_type, MsgBoxStyle.Critical)
        Return False
    End If


    Dim hashValue() As Byte


    Dim fileStream As FileStream = File.OpenRead(file_name)

    fileStream.Position = 0

    hashValue = hash.ComputeHash(fileStream)

    Dim hash_hex = PrintByteArray(hashValue)


    fileStream.Close()


    Return hash_hex

End Function


Public Function PrintByteArray(ByVal array() As Byte)

    Dim hex_value As String = ""


    Dim i As Integer
    For i = 0 To array.Length - 1


        hex_value += array(i).ToString("X2")

    Next i


    Return hex_value.ToLower

End Function


Private Sub BT_Parcourir_Click(sender As System.Object, e As System.EventArgs) Handles BT_Parcourir.Click


    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then


        Dim path As String = OpenFileDialog1.FileName

        TB_path.Text = path


        LB_md5.Text = md5_hash(path)
        LB_sha1.Text = sha_1(path)
        LB_sha256.Text = sha_256(path)
        ListBox1.Items.Add(LB_md5.Text)
        ListBox1.SelectedIndex += 1
        Dim itemmd5 = LB_sha256.Text

        'For Each line As String In ListBox1.Items

        'My.Settings.itemsmd5 = itemmd5
        'md5hashindexer += 1
        'Next
    End If


    Dim sb As New System.Text.StringBuilder()

    For Each o As Object In ListBox1.Items
        sb.AppendLine(o)
    Next

    System.IO.File.WriteAllText("c:\checkedfilesmd5.txt", sb.ToString())


End Sub


Private Sub LB_sha256_Click(sender As Object, e As EventArgs) Handles LB_sha256.Click

End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs)

End Sub

Private Sub form15_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim lines() As String = IO.File.ReadAllLines("c:\checkedfilesmd5.txt")
    ListBox1.Items.AddRange(lines)
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim sb As New System.Text.StringBuilder()

    For Each o As Object In ListBox1.Items
        sb.AppendLine(o)
    Next

    System.IO.File.WriteAllText("c:\checkedfilesmd5.txt", sb.ToString())
    MsgBox("Dados Guardados")
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim lines() As String = IO.File.ReadAllLines("c:\checkedfilesmd5.txt")
    ListBox1.Items.AddRange(lines)
End Sub

Private Sub Label6_Click(sender As Object, e As EventArgs) Handles Label6.Click
    ListBox1.Items.Clear()
End Sub

Private Sub Label7_Click(sender As Object, e As EventArgs) Handles Label7.Click
    MsgBox("Atençao Voce Vai Apagar Todos Os Dados Ja Escaneados")
    ListBox1.Items.Clear()
    System.IO.File.Delete("c:\checkedfilesmd5.txt")
End Sub
End Class