Serial Manager - Verwalte deine Serieennummern

    • Release
    • Open Source

    Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Orion.

      Serial Manager - Verwalte deine Serieennummern

      Name des Programmes
      Serial Manager

      Beschreibung

      Mit dem Serial Manager können Seriennummern von Spielen oder Software Anwendungen Digital Verwaltet werden. Dabei werden die Seriennummern in einer XML Datei Hinterlegt. Man kann Serials in die Datenbank Hinzufügen, Entfernen und auch Direkt die Seriennummer Kopieren. Warum habe ich das Programm Entwickelt ? Da ich jetzt schon von mehren Spielen die Seriennummern verlegt habe und mit dem Serial Manager habe ich nun alle meine Seriennummern auf dem PC und USB Stick.

      Systemanforderungen
      Windows XP, Vista, 7, 8
      .NetFramework 3.5

      Screenshots


      Download

      Im Anhang

      Source
      Form1

      VB.NET-Quellcode

      1. Public Class Form1
      2. Public Pfad As String = My.Application.Info.DirectoryPath & "\Datenbank"
      3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      4. If Not IO.Directory.Exists(Pfad) Then
      5. IO.Directory.CreateDirectory(Pfad)
      6. CreateDatabase()
      7. End If
      8. Me.LoadDataTable()
      9. End Sub
      10. Private Sub GewähltenSerialLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GewähltenSerialLöschenToolStripMenuItem.Click
      11. If Not Me.ListView1.FocusedItem Is Nothing Then
      12. DeleteDataset(Me.ListView1.FocusedItem.Text, Me.ListView1.FocusedItem.SubItems(1).Text)
      13. End If
      14. End Sub
      15. Private Sub CreateDatabase()
      16. Dim xml As New Xml.XmlDocument
      17. Dim NewNode As Xml.XmlNode
      18. Dim Decl As Xml.XmlDeclaration
      19. Decl = xml.CreateXmlDeclaration("1.0", "UTF-8", Nothing)
      20. xml.InsertBefore(Decl, xml.DocumentElement)
      21. NewNode = xml.CreateNode(System.Xml.XmlNodeType.Element, "Serials", Nothing)
      22. xml.AppendChild(NewNode)
      23. xml.Save(Me.Pfad & "\Database.xml")
      24. End Sub
      25. Private Sub DeleteDataset(Name As String, Key As String)
      26. Dim xml As New Xml.XmlDocument
      27. Dim SelNode As Xml.XmlNode
      28. xml.Load(Pfad & "\Database.xml")
      29. SelNode = xml.DocumentElement.SelectSingleNode("Serial[@Spiel='" & Name & "' and @Serial='" & Key & "']")
      30. xml.DocumentElement.RemoveChild(SelNode)
      31. xml.Save(Pfad & "\Database.xml")
      32. End Sub
      33. Private Sub LoadDataTable()
      34. Me.ListView1.Items.Clear()
      35. Dim xml As New Xml.XmlDocument
      36. xml.Load(Pfad & "\Database.xml")
      37. For Each Node As Xml.XmlNode In xml.DocumentElement
      38. Dim item As New ListViewItem
      39. item.Text = Node.Attributes(0).Value
      40. item.SubItems.Add(Node.Attributes(1).Value)
      41. item.SubItems.Add(Node.Attributes(2).Value)
      42. Me.ListView1.Items.Add(item)
      43. Next
      44. End Sub
      45. Public Sub RefreshDataset()
      46. LoadDataTable()
      47. End Sub
      48. Private Sub NeuerSerialHinzufügenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuerSerialHinzufügenToolStripMenuItem.Click
      49. Dim NeuerSerial As New NeuerSerial(Me)
      50. NeuerSerial.Show()
      51. End Sub
      52. Private Sub GewähltenSerialKopierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GewähltenSerialKopierenToolStripMenuItem.Click
      53. If Not Me.ListView1.FocusedItem Is Nothing Then
      54. My.Computer.Clipboard.SetText(Me.ListView1.FocusedItem.SubItems(1).Text)
      55. MessageBox.Show("Seriennummer Kopiert")
      56. End If
      57. End Sub
      58. Private Sub GewähltenSerialÄndernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GewähltenSerialÄndernToolStripMenuItem.Click
      59. If Not Me.ListView1.FocusedItem Is Nothing Then
      60. Dim F As New Aendern(Me, Me.ListView1.FocusedItem.Text, Me.ListView1.FocusedItem.SubItems(1).Text)
      61. F.TextBox1.Text = Me.ListView1.FocusedItem.Text
      62. F.TextBox2.Text = Me.ListView1.FocusedItem.SubItems(1).Text
      63. F.TextBox3.Text = Me.ListView1.FocusedItem.SubItems(2).Text
      64. F.Show()
      65. End If
      66. End Sub
      67. End Class



      NeuerSerial

      VB.NET-Quellcode

      1. Public Class NeuerSerial
      2. Private Parent As Form1
      3. Public Sub New(Parent As Form1)
      4. Me.Parent = Parent
      5. Me.InitializeComponent()
      6. End Sub
      7. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      8. AddDataSet()
      9. Me.Parent.RefreshDataset()
      10. End Sub
      11. Private Sub AddDataSet()
      12. Dim xml As New Xml.XmlDocument
      13. Dim NewNode As Xml.XmlNode
      14. Dim NewAtt As Xml.XmlAttribute
      15. xml.Load(Me.Parent.Pfad & "\Database.xml")
      16. NewNode = xml.CreateNode(System.Xml.XmlNodeType.Element, "Serial", Nothing)
      17. NewAtt = xml.CreateAttribute("Spiel")
      18. NewAtt.Value = Me.TextBox1.Text
      19. NewNode.Attributes.Append(NewAtt)
      20. NewAtt = xml.CreateAttribute("Serial")
      21. NewAtt.Value = Me.TextBox2.Text
      22. NewNode.Attributes.Append(NewAtt)
      23. NewAtt = xml.CreateAttribute("Bemerkung")
      24. NewAtt.Value = Me.TextBox3.Text
      25. NewNode.Attributes.Append(NewAtt)
      26. xml.DocumentElement.AppendChild(NewNode)
      27. xml.Save(Me.Parent.Pfad & "\Database.xml")
      28. End Sub
      29. End Class



      Aendern

      VB.NET-Quellcode

      1. Public Class Aendern
      2. Private KeyName As String
      3. Private Key As String
      4. Private Parent As Form1
      5. Public Sub New(Parent As Form1, Name As String, Key As String)
      6. Me.Parent = Parent
      7. Me.KeyName = Name
      8. Me.Key = Key
      9. InitializeComponent()
      10. End Sub
      11. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      12. Dim xml As New Xml.XmlDocument
      13. Dim SelNode As Xml.XmlNode
      14. xml.Load(Me.Parent.Pfad & "\Database.xml")
      15. SelNode = xml.DocumentElement.SelectSingleNode("Serial[@Spiel = '" & Me.KeyName & "' and @Serial = '" & Me.Key & "']")
      16. If Not SelNode Is Nothing Then
      17. SelNode.Attributes(0).Value = Me.TextBox1.Text
      18. SelNode.Attributes(1).Value = Me.TextBox2.Text
      19. SelNode.Attributes(2).Value = Me.TextBox3.Text
      20. End If
      21. xml.Save(Me.Parent.Pfad & "\Database.xml")
      22. Me.Parent.RefreshDataset()
      23. Me.Close()
      24. End Sub
      25. End Class



      Lizenz
      MIT Lizenz

      The MIT License (MIT)

      Copyright (c) 2014 Wagner Andreas

      Permission is hereby granted, free of charge, to any person obtaining a copy
      of this software and associated documentation files (the "Software"), to deal
      in the Software without restriction, including without limitation the rights
      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      copies of the Software, and to permit persons to whom the Software is
      furnished to do so, subject to the following conditions:

      The above copyright notice and this permission notice shall be included in
      all copies or substantial portions of the Software.

      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
      THE SOFTWARE.


      Bemerkung
      IDE Visual Studio 2012 Expres
      Sprache VB.Net
      Ja ich weis, es ist ein sehr kleines Programm hat aber auch einen nutzen evtl. für den ein oder anderen.
      Dateien
      • Release.zip

        (32,54 kB, 107 mal heruntergeladen, zuletzt: )
      • Release 1.1.zip

        (35,71 kB, 104 mal heruntergeladen, zuletzt: )
      • Release 1.2.zip

        (36,33 kB, 120 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Andy16823“ ()

      Drei Dinge die mir sofort aufgefallen sind:
      - Die Form hat noch das Standardicon - seriös ist anders...
      - Pack doch nicht immer den ganzen Kram der sich im Ordner befindet in die Zip.
      - Und so lässt sich viel einfacher speichern, laden und bearbeiten: msdn.microsoft.com/de-de/libra…serializer(v=vs.110).aspx

      8-) faxe1008 8-)
      Habe leider kein passendes Icon gefunden. Werde aber noch eins Gestalten. Welche Dateien sollen den rein bzw. Welche sind Überflüssig.

      Ich habe es via xml gemacht, da es ja open Source ist, so kann wer der nicht genau weiß wie es Funktioniert mal nachschauen, da sowohl das Erstellen, Laden, Speichern und Löschen beinhaltet wird.

      Was ich vergessen habe, das ändern Form, dass folgt aber Morgen.
      Danke für die Serialisierungs Hilfen :) werde jedoch bei XML bleibe, da ich sonst alles ändern müsste. Ich könnte jedoch zwei versionen machen, eine XML version und eine Serilisierte Version. Ich habe auch ein neues Update erstellt, wie versprochen das ändern des Serials und ein Logo. Der Source befindet sich Teilweise im Startpost,
      ContextMenüs für die jeweiligen Einträge wären auch eine gute Erweiterung, anstatt die Befehle nur über das "Verwalten-Menü" bereitzustellen. Evtl. wäre es auch sinnvoll, die XML-Datei zu verschlüsseln? Die Einträge sollten auf jeden Fall auch sortierbar sein. Eine Spalte die das Kaufdatum anzeigt wäre auch nicht zu verachten. Die Einträge sollte man auch bearbeiten können. Ein nettes Feature wäre auch, dass das Spiel, sofern installiert, gleich über Dein Programm gestartet werden kann.

      So ist Deine Anwendung leider etwas mager, aber es lässt sich durchaus was daraus machen.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
      Das mit dem Kaufdatum ist eine Gute Sache, bei der Verschlüsselung ist das so ne Sache, angenommen du hast ein Spiel. In 3 Jahren möchtest du es mal wieder Spielen, hast aber den Serial verloren. Das Passwort kennst du auch nicht mehr. Ergebnis du kannst es nicht Spielen.

      Auch das Kontexmenü kann ich mit dem Nächstem Update einbauen. Wirklich viel ändern muss man ja nicht, nur den Items das Event Zuweisen. Das ändern ist in der Version 1.1 schon dabei, dass hatte ich bei Release wohl vergessen.
      Ich finde das Programm ist so wie es jetzt ist, nicht wirklich Einsatztauglich. Nach dem löschen bleibt der Eintrag in der List-View/Box. Auch nach dem hinzufügen könnte sich deine "Hinzufügen Form" wieder schliessen. Ich schicke dir mal eine Mappe via PN, da siehst du mal wie das mit Datenbingung usw. funktioniert.
      Wieso ist es deiner Meinung nicht Einstatztauglich, der Fehler habe ich bereits ausgebessert. Es fehlte einfach die Aktuallisierung nach dem Löschen. Dies kommt mit dem nächstem Update. Danke auch für die Projektmappe, werde ich mir mal anschauen. Habe bis dato nur mit Datenbindungen im Datenbank bereich gearbeitet. Aber habe mich schon lange von der Datenbankerei abgewandt und nutze seit dem XML.
      Danke sehr :) das wollte ich wissen. Nur wo ich weiß was beheben werden soll, kann ich es auch beheben :) Daumen Hoch

      ----

      Habe den Fehler Behoben, Die Liste wird nach dem Löschen aktualisiert. Ein Contexmenü wurde Hinzugefügt. Einfach die Alte XML der version 1.0 oder 1.1 Kopieren und in das neue Datenbank Verzeichnis Kopieren.

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

      Wollte nur mal OT anmerken das ichs Top finde das du Kritik verträgst und auch umsetzt :thumbup:
      Ansonsten würde ich noch im Menü bei Serial hinzufügen etc. das umschreiben in Serial-Key hinzufügen klingt sonst ein bisschen merkwürdig und ums auch Allgemein zu gestalten würde ich statt Spiel, Produkt hinschreiben dann könnte man auch zb. Win 8 Keys oder Office Keys besser eintragen.
      Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)