Seriennummer

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Seriennummer

    Hallo Leute,

    ich bin gerade am schreiben eines Programms, das ich mehreren Bereichen eingesetzt werden soll. Dafür bräuchte ich auch ein Fenster, welches nur bei aller ersten starten des Programms auftaucht, eine Seriennummer eingibt und das Fenster dann beim starten nicht mehr auftaucht. Wie kann ich das den so bestimmen, sodass das auch so funktioniert? Ich habe zudem mehere Forms in meinem VB 2010 Express, wie kann ich da die startreihenfolge der einzelnen Forms ändern, sodass das Fenster mit der Seriennummer als erstes auftaucht, danach durch einen klick auf den Weiter Button, erscheint das eigentliche Programm?!

    Ich hoffe ihr könnt mir helfen. ;)
    Wie bitte? Suche? Wie stellt ihr euch das jetzt vor?

    Es gibt kein Gesamtpaket! Das heißt selbst arbeiten, oder optional, wenn keine Ahnung oder Lust, machen lassen.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Es gibt hier einen Unterforum "Marktplatz".

    Besteht kein Interesse selbst eines aufzustellen? Dir sei aber von vornerein gesagt: Ein sicheres System ist kaum zu schaffen. Meistens ist ein solches System auch nicht nötig.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Also für das Problem, dass das Fenster für den Serial nur angezeigt werden soll, wenn es nötig ist, erstellt du einfach einen Eintrag in my.settings mit z.B. dem Namen "aktiviert" und dem Wert "NEIN". Dann fragst du beim Start des Serialfensters (im Load Ereignis) diesen Eintrag ab und wenn dieser auf z.B. "JA" steht wird direkt die nächste Form aufgerufen...
    Der Wert wird natürlich auf "JA" gesetzt sobald der Serial richtig eingegeben wurde.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. If My.Settings.aktiviert = "JA" Then
    3. Form2.Show()
    4. Me.Hide()
    5. End If
    6. End Sub


    Bei der Sache mit dem Abfragen des Serials müsste man natürlich noch wissen ob das ganze einfach einen Serial beinhalten soll, mehrere oder über einen eigenen Webserver (oder TCP Server) gehen soll...
    Also für das Problem, dass das Fenster für den Serial nur angezeigt werden soll, wenn es nötig ist, erstellt du einfach einen Eintrag in my.settings mit z.B. dem Namen "aktiviert" und dem Wert "NEIN".


    Dann hat man das Problem innerhalb von ca 30 Sekunden gelöst.

    Serialcodes werden nie sicher sein, und der Aufwand ein System zu schaffen das die ersten Tage standhält ist bei den Programmen hier ist mit sicherheit zu hoch.

    LG Skybird
    //Kommentar
    Richtig. Aber wo liegt der Witz einen Wert abzufragen, der im Programm festgelegt ist und am Ende nur durch irgendwelche Hürden erreichbar ist? Das kann man sich ja wohl getrost sparen.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Dazu müssen wir erst mal Sicherheit definieren.
    Meistens soll sichergestellt werden, dass das Programm auf einem anderen Rechner nicht läuft. Das geht relativ einfach und relativ sicher.
    1. Nimm einen Dongle. Das ist absolut sicher aber teuerer.
    2. Lies beim 1. Start die Seriennummer der Netzwerkkarte aus (die ist unär). Zeige sie in einem Fenster an mit dem Text "Bitte senden Sie diese Nummer per Mail an den Hersteller. Sie erhalten umgehend einen Freischaltcode für Ihre Software." oder so.
    Mit dieser Nummer und einer programmspezifischen Kennnummer (3 "n") generierst Du z.B. einen Hash, der rückübertragen wird. Das Programm selbst testet die Nummer und bei Richtigkeit wird sie z.B. in die Registry eingetragen und sorgt dafür, dass das Programm beim nächsten Start einen gültigen Zustand vorfindet. Das Programm muss natürlich bei jedem Start diesen Test durchführen.
    Auf diese Weise lassen sich auch einzelne Features eines Programms sperren bzw. freischalten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!