Nach 30 Tagen - Schluss?

  • VB.NET

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

    Nach 30 Tagen - Schluss?

    Hey,

    Also ich würde gern in nen Programm einbauen dass man es nach 30 Tagen nicht mehr nutzen kann und danach nen Code eingibt. (Wie ich das mim Code löse is Easy dass brauch mir keiner sagen :))

    Problem ist aber wie mach ich das...

    Weil würde ich nen Timer nehmen oO würde er sich bei jedem close und start wieder neu ticken...

    Also muss man dass iwie Speichern die Zeit... oder geht dass alles noch einfacher?


    MFG

    Brauch dringend Hilfe
    Pseudocode:

    VB.NET-Quellcode

    1. ' first einlesen
    2. ' nicht vorhanden:
    3. dim first As DateTime = DateTime.Now
    4. ' abspeichern
    5. ' Ende nicht vorhanden:
    6. If first.AddDays(30) > DateTime.Now Then
    7. 'abgelaufen
    8. End If
    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!

    RaZeR_2 schrieb:

    Wie ich das mim Code löse is Easy dass brauch mir keiner sagen

    RaZeR_2 schrieb:

    Weil würde ich nen Timer nehmen oO würde er sich bei jedem close und start wieder neu ticken...

    Das zweite passt so absolut nicht zum ersten ...

    RaZeR_2 schrieb:

    soll ja kein bestimtes datum sein sondern einfach nur 30 tage egal wann die dass ziehen oO

    Er meint, du speicherst das Datum beim ersten Programmstart in der Reg und schaust dann jedesmal nach, ob schon dreißig Tage vergangen sind. Unsicher wie ein Kondom auf 'nem Kaktus, aber extrem simpel umzusetzen.
    Okay, danke ich werds direkt mal versuchen @ Rod ;)


    @Picoflop ;) Okay naja das mim Kondom isn guter witz merk ich mir ^^ Werde aber dass von Rod ma versuchen weil das mit dem Auslesen etc. tu ich mir nich wieder an letztes ma wo ich sowas gemacht habe hatte ich 20 fehlermeldungen... habs dann jmd gezeigt der als Informatiker arbeitet... und dass jetzt nicht sooo schlecht ^^

    Und selbst der sagte normalerweise sollte dass gehen... also schon danke für die Hilfe undso ^^ Aber sowas tu ich mir sicher nich nochma an ^^

    VB.NET-Quellcode

    1. Dim first As DateTime = DateTime.Now
    2. If first.AddDays(30) > DateTime.Now Then
    3. MsgBox("Trial Key was not entered. Please install that program again.", MsgBoxStyle.Critical, "Live+")
    4. End
    5. Else
    6. If My.Settings.Trial = "7651-5452-8870-7u619" Then
    7. Label8.Visible = True
    8. Label8.Text = "Trial-Key accepted"
    9. End If
    10. End If



    Okay 1. Sry wegen doublepost... so wirds aber zu 80% leider keiner mehr lesen -.- ist halt leider oft so...

    2. jetzt sagt er bei jedem Start "Trial-Key was not ..." und closed sich...


    Laut dem Code von Rod... sollte er dass doch erst nach 30 Tagen sagen oder versteh ich da jetzt mal wieder was falsch? ;(


    Edit by Manschula: Bitte keine Mehrfachposts: - es gibt eine Bearbeiten-Funktion! --> Beiträge zusammengeführt

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

    RaZeR_2 schrieb:

    Dim first As DateTime = DateTime.Now
    If first.AddDays(30) > DateTime.Now Then

    Das trifft (in nicht surrealen Universen) IMMER zu.

    Laut dem Code von Rod

    Vlt denkst du erstmal über RFGs Code UND den Kommentar nach, bevor du ihn sinnlos 1:1 kopierst?

    "First" wird nur EINMAL gesetzt und dann gespeichert. Beim Programmstart prüft man, ob "First" (in der Registry, in ner Textdatei oder in einer Schüssel Himbeerquark) vorhanden ist und wenn ja, liest man den Wert aus, sonst schreibt man ihn.
    Sorry aber ich versteh das ganze nich :O...

    hab das halt so einfach ins Loadverzeichniss gepackt und ich versteh nunmal nich so viel von dem Kram mit Daten etc.....

    Würde ja eig nur gern wissen wie ich dass mache dass er es bei jedem start prüft und beim ersten start angibt oder sowas... was weis ich wie das funktioniert...
    Naja, dann schreib doch was anneres in die Messagebox, was dir besser gefällt! :thumbsup:

    Ne im Ernst, zum kopieren von Code gehört auch das kapieren.
    Wenn du wissen willst, wann du zum lestzten mal den Puff besucht hast, mußt du das Datum speichern (z.B. auf nen Zettel schreiben).
    Folgender Ablauf:
    - Bei jedem Programmstart schaust du nach, obs schon nen Zettel gibt.
    - Wenn nicht, gehst du zum Puff und schreibst das Datum + dem Zeitraum auf, wo du denkst, das hältst du ohne aus. Lege den Zettel wo hin, wo er nicht verloren geht, sonst wirds zu teuer! (Sicherheitslücke)
    - Wenn ja, schaust du auf den aktualisierten Kalender und vergleichst das Datum mit dem Datum aufm Zettel. Ist das Datum noch nicht vorbei, is alles OK, ansonsten wird ein erneuter Puffbesuch fällig!

    Lies mal Rod sein Post nochmal, auch das grün gedruckte.

    FF

    V

    Edit:
    Ich stell mir grade vor, wenn man den Zettel im Himberquark sucht... :rolleyes:
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    RodFromGermany schrieb:


    VB.NET-Quellcode

    1. ' first einlesen
    2. ' nicht vorhanden:
    3. dim first As DateTime = DateTime.Now
    4. ' abspeichern
    5. ' Ende nicht vorhanden:
    @picoflop: und mein Code, da sollte dann so etwas rauskommen:

    VB.NET-Quellcode

    1. dim first As DateTime
    2. Dim dasGelesene = READ_FROM_IRGENDWOHER
    3. If dasGelesene = NICHT_VORHANDEN Then
    4. first = DateTime.Now
    5. Else
    6. first = MACHE_DATUM_AUS_DIESEM(dasGelesene)
    7. End If
    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!
    - Bei jedem Programmstart schaust du nach, obs schon nen Zettel gibt.

    - Wenn nicht, gehst du zum Puff und schreibst das Datum + dem
    Zeitraum auf, wo du denkst, das hältst du ohne aus. Lege den Zettel wo
    hin, wo er nicht verloren geht, sonst wirds zu teuer! (Sicherheitslücke)

    - Wenn ja, schaust du auf den aktualisierten Kalender und
    vergleichst das Datum mit dem Datum aufm Zettel. Ist das Datum noch
    nicht vorbei, is alles OK, ansonsten wird ein erneuter Puffbesuch
    fällig!
    Okay also sollte ich praktisch das Datum einfach einspeichern... sagen wir mal...

    My.Settings.Date?


    Dann soll er das bei jedem Start auslesen und wenn er merkt aha nach 30 Tagen ist es vorbei... dann soll er stoppen?


    Sprich er müsste beim ersten Start direkt da nen Datum reinschreiben und sich merken dass in 30 Tagen schluss ist und Error kommt?

    Heist wenn es jmd am 1.7.2012 verwendet is am 31.07.2012 also muss er praktisch das Datum ausrechnen hab ich dass richtig verstanden?

    RaZeR_2 schrieb:

    hab ich dass richtig verstanden?
    Ja, so in etwa.
    My.Settings Nein, nein, nein und nochmals nein.
    Die kann jeder ein wenig erfahrene Benutzer finden und löschen, da hat er täglich eine neue 30-Tages-Frist.

    Annoxoli schrieb:

    Du musst in der registry verschlüsselt das datum abspeichern. am besten mit einem namen, was NIX mit deinem programm zu tun hat
    den überprüfst du bei jedem programmstart.

    Also beschäftige Dich ein wenig mit der Registry. Allerdings ist das auch nicht sicher, denn wenn jemand ein RegClean durchführt, wird dieser Eintrag ggf. als unverknüpft gelöscht.
    Da musst Du Dir noch ein paar Gedanken machen.
    z.B. auf Deinem Server oder so.
    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!
    halbwegs sicher meiner meinung nach ne mysql db die das datum der aktivierung zusammen mit der hwid speichert; Dann das datum zurückgeben lassen und halt die 30 tage zählen. Ist denke ich mal aufwand - ergebniss technisch recht gut

    sicherlich lässt sich das auch aushebeln, aber das lässt sich alles ^^