Serialnummer auslesen

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Matoso.

    Serialnummer auslesen

    hallo ich will für mein programm eione serialnummer machen
    und jetzt möchte ich das so machen,dass wenn ich die srialnummer EINMAL eingebe ass ich sie dann nie mehr eingeben muss
    muss man das mit einer datenbank machen?


    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    das geht mit my.computer.filesystem.readalltext (aus einer datei lesen) und my.computer.filesystem.writealltext (in eine datei schreiben)

    anfangen könntest du so:

    VB.NET-Quellcode

    1. If Not My.Computer.FileSystem.FileExists("pfad der datei") Then
    2. My.Computer.FileSystem.WriteAllText("pfad der datei", "nichts", True)
    3. code1 = "nichts"
    4. Else
    5. code1 = My.Computer.FileSystem.ReadAllText("pfad der datei")
    6. End If
    7. If code1 = "nichts" Then
    8. MsgBox("Seriennummer eingeben!", MsgBoxStyle.OkCancel = MsgBoxStyle.Critical, "Codeerror!")
    9. If MsgBoxResult.Ok Then
    10. serial.Show() ' form wo man die serialnummer eingeben kann
    11. Me.Close()
    12. ElseIf MsgBoxResult.Cancel Then
    13. MsgBox("Code wurde nicht eingegeben! Programm wird beendet!")
    14. Me.Close()
    15. End If
    16. ElseIf code1 = "die serial eben" Then
    17. hauptformdesprogs.Show()
    18. Me.Close()
    19. Else
    20. MsgBox("Fehler beim Laden des Keys! Die Key-Datei wird gelöscht!" + Chr(13) + "Beim erneuten Start müssen sie den Key neu eingeben!")
    21. My.Computer.FileSystem.DeleteFile("pfad der datei")
    22. Me.Close()


    dann noch im serial form das eingeben:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. code = TextBox1.Text
    3. If code = "die serial" Then
    4. hauptprog.Show()
    5. My.Computer.FileSystem.DeleteFile("pfad der datei")
    6. My.Computer.FileSystem.WriteAllText("pfad der datei", code, True)
    7. Me.Close()
    8. Else
    9. MsgBox("Falscher Code! Programm wird beendet!")
    10. Application.Exit()
    11. End If
    | Keine Fragen per PN oder Skype.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „serials“ ()

    Danke! werd's gleich mal ausprobieren
    _________________

    beim 2. code unterstreicht er mir bei winordner fast die ganze reihe (also winordner und getenvironment....)

    EDIT:sorry wegen dem doppelpost ich weiß jetzt aber nicht wie ich sie zusammenfügen kann

    Edit by Agent: Doppelpost zusammengefasst

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Agent“ ()

    Hasst du auch "Pfad der Datei" etc durch deine eigenen Pfad ersetzt? z.B.

    VB.NET-Quellcode

    1. "C:\Programme\solarex\Dateien\serialnumber.txt"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tobikubi“ ()

    ja habe ich aber es passiert nix viell. haabe ich den code am falschen ort eingegeben unter form1_load

    EDIT: ist es richtig ihn uinter form1_load einzugeben den ersten code?!?!?!?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Matoso“ ()

    nee der soll doch erst am ende form1 aufmachen

    man muss den irgendwo anders einfügen.
    mach einen begrüßungsbildschirm und gib den als startforumular an, nicht als begrüßungsbildschirm!!!
    dann nen timer auf 2 sek einstellen und bei timer1.tick den code eingeben (den ersten)
    | Keine Fragen per PN oder Skype.
    aber ich weiß nicht bei dem begrüßungsbildschirm wie man den so macht dass er als erstes startet
    __________________

    der unterstreicht immer diese zeile dann:

    VB.NET-Quellcode

    1. Else
    2. code1 = My.Computer.FileSystem.ReadAllText("D:\Martin\serialprog\lol.txt")


    mit der fehlermeldung:
    ungültige zeichenfolge im typ Integer

    oder so
    PS: ich habe code1 mit Shared As code1 Integer deklariert iich glaube das ist falsch oder?

    Edit by Agent: Doppelpost zusammengefasst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

    Bitte gewöhne dir mal an, die Editierfunktion (Bearbeiten) zu benutzen! Diese ewigen Doppelposts fördern nicht gerade die Übersicht!

    Ein Text ist ein String, also ist Integer Quatsch.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hallo,

    Ich würde das ganze über einen Registry Eintrag machen.
    ACHTUNG: Das verändern der Registry kann zu Problemen mit Windows führen (z.B. kein Start usw.) keine Einträge verändern, die eventuell benötigt werden!

    Am besten schaust du erst mit dem Regedit nach (Start->Ausführen/Run->regedit->OK)

    Im Prinzip funktioniert das so:

    VB.NET-Quellcode

    1. Imports Reg = Microsoft.Win32

    VB.NET-Quellcode

    1. Dim Serial As Boolean
    2. Dim Value As String = Reg.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\" & My.Application.Info.ProductName, "Entry", Nothing)
    3. If Value = "1" Then
    4. Serial = True
    5. Form2.Show()
    6. Else
    7. MsgBox("Geben Sie den Serial ein.", 64)
    8. 'Eintrag zum Eingeben der Serial erstellen
    9. End If

    Den Eintag erstellt man so:

    VB.NET-Quellcode

    1. If Serial = True Then
    2. Reg.Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\" & My.Application.Info.ProductName, "Entry", "1")
    3. End If


    Gruß
    ~blaze~

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „~blaze~“ ()

    Hi!

    Dazu musst dus entweder als Administrator ausführen (damit du auf Local Machine zugreifen kannst) oder jeder Benutzer muss es einma eingeben, dann speicherst dus unter Current User in die Registry.

    Fürs 2te ersetzt du einfach "HKEY_LOCAL_MACHINE" durch "HKEY_CURRENT_USER".


    Aber neeein, Vista is ja soo doll ...


    so long..
    Andy
    Mh... dann einfach in ne Datei würde ich sagen.
    ich würde es dann so lösen:

    VB.NET-Quellcode

    1. If IO.File.Exists(Application.StartupPath & "\Serial.txt") = True Then
    2. 'Hier entweder Code zum auslesen der Datei oder einfach so stehen lassen
    3. Else
    4. MsgBox("Bitte geben Sie den Serial ein.", 64)
    5. End If


    und wenn er das dann richtig eingeben hat dann:

    VB.NET-Quellcode

    1. MsgBox("Serial richtig", 64)
    2. Dim i as Integer = FreeFile
    3. FileOpen(i, Application.StartupPath & "\Serial.txt", OpenMode.Input)
    4. PrintLine (i, "1")
    5. FileClose(i)


    Gruß
    ~blaze~

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Serial As String = "123456789"
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. If IO.File.Exists(Application.StartupPath & "\Serial.txt") = True Then
    5. 'Hier entweder Code zum auslesen der Datei oder einfach so stehen lassen
    6. Dim i As Integer = FreeFile()
    7. FileOpen(i, Application.StartupPath & "\Serial.txt", OpenMode.Input)
    8. If LineInput(i) = "1" Then
    9. Form2.Show()
    10. Else
    11. MsgBox("Critical Error occured: Serial file invalid", 16)
    12. Application.Exit()
    13. End If
    14. Else
    15. MsgBox("Bitte geben Sie den Serial ein.", 64)
    16. End If
    17. End Sub
    18. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    19. If TextBox1.Text = Serial Then
    20. MsgBox("Serial richtig", 64)
    21. Dim i As Integer = FreeFile()
    22. FileOpen(i, Application.StartupPath & "\Serial.txt", OpenMode.Output)
    23. PrintLine(i, "1")
    24. FileClose(i)
    25. End If
    26. End Sub
    27. End Class


    hab auch nen Fehler gemacht ^^ musste nämlich Output und nicht Input heißen


    Gruß
    ~blaze~

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    ich habs jetzt mit hilfe von tobikubi so gemacht:

    VB.NET-Quellcode

    1. Dim Serialnummer_True As String
    2. Dim Serialnummer_Eingabe As String
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim Serialnummer() As String = IO.File.ReadAllLines("PFAD")
    5. Serialnummer_True = Serialnummer(0)
    6. Dim False_Text As String = "False"
    7. Dim True_Text As String = "True"
    8. If Serialnummer_True = "False" Then
    9. Serialnummer_Eingabe = InputBox("Bitte Geben Sie die Serialnummer ein!")
    10. If Serialnummer_Eingabe = "123" Then
    11. Dim Save_Serialnummer As IO.StreamWriter = New IO.StreamWriter("PFAD")
    12. Save_Serialnummer.WriteLine(True_Text)
    13. Save_Serialnummer.Close()
    14. Else
    15. Dim Save_Serialnummer As IO.StreamWriter = New IO.StreamWriter("PFAD")
    16. Save_Serialnummer.WriteLine(False_Text)
    17. Save_Serialnummer.Close()
    18. End
    19. End If
    20. End If


    EDIT: aber bei mir muss die irgendwie der text in der text datei ,,False" sein.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Matoso“ ()