Seite 1 von 1

Programmstop nach einem bestimmten Datum (vers Datumsformat)

Verfasst: 30.04.2013 22:12
von HemSA
Hallole,
ich habe in meiner Freizeit ein Programm geschrieben das ich in unserer Firma verwende.
Nun will eine Zweigstelle im Ausland wahrscheinlich dieses Programm haben.

Ist ja kein Problem. Aber was ich nicht will ist, dass die Zweigstelle dieses Programm umsonst bekommt ( weil privat gemacht-bin kein Softwareentwickler in der Firma - mach das Hobbymässig).
Nun wird es unter Umständen andere Leute von anderen Abteilungen in der Firma geben, die dieses Programm ohne meine Erlaubnis vom Server kopieren und es dann der Zweigstelle geben (um dann mit anderen Dienstleistungen zusammen etc. Geld in Rechnung stellen).

Das ist natürlich nicht die feine Tour.

Was ich will ist, dass das Programm nach einem bestimmten Datum ohne eine Meldung nicht mehr funktioniert.

Dies soll aber weltweit funktionieren (Amerika und andere Länder haben ja andere Datumsformate etc.).

Da es sich um Testdaten handelt kann die Zweigfirma natürlich nicht herkommen und das Datum immer zurückstellen, das dürfte nicht das Problem sein (man kann ja ein Produkt nicht testen bevor es produziert wurde).

Wenn die Zweigfirma sich evtl. entschlossen hat das Programm von mir zu kaufen oder anderweitig ein eigenes Programm zu machen kann ich ja danach wieder die Version ohne "Datumsschutz" auf unseren Server kopieren ( wenn die Zweigfirma es von mir kaufen will bekommen die natürlich die Version ohne die Datumskontrolle).

Hat da einer eine Idee?

Danke im Voraus.
Michael

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 30.04.2013 22:41
von Kiffi
das mit dem Datum kannst Du selber testen, indem Du
dessen Format unter Systemsteuerung änderst (beim mir
(Win7) ist das "Region und Schema").

Date() liefert ohnehin einen unformatierten Zahlenwert
zurück, den Du mit FormatDatei() unabhängig vom
eingestellten Regionalschema nach Belieben gestalten
kannst.

Grüße ... Kiffi

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 30.04.2013 23:30
von HemSA
Hallo Kiffi,
Danke.
Kannst du mir sagen warum der Code mit 5.11 funktioniert

Code: Alles auswählen

heute.l=Date()
Ergebnis$ = Str(heute.l)
Debug Ergebnis$
aber mit Version 4.02 nicht ( Zugriffsverweigerung)?

Dieses Beispiel aus der Hilfe funktioniert bei keiner Version

Code: Alles auswählen

Debug FormatDate("J=%yyyy, M=%mm, T=%dd", Date()) 
Habe Windows 7 und verwende bei diesem Programm 4.02 wegen dem Disphelper.

Michael

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 11:35
von HeX0R
Das hört sich mal wieder nach einem zu herrschsüchtigen Antiviren-Programm an.

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 11:45
von Kiffi
ich habe nur die V5.11; kann also zu früheren Versionen
nichts sagen. In 5.11 funktionieren die Beispiele ohne
Probleme.

Wg. 4.02: Würde mich wundern, wenn der Disphelper
nicht auch mit neueren Versionen läuft. Notfalls kann
man COMate verwenden. Der läuft auch unter 5.11

Grüße ... Kiffi

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 11:55
von ts-soft
Kiffi hat geschrieben: Wg. 4.02: Würde mich wundern, wenn der Disphelper
nicht auch mit neueren Versionen läuft.
Eine Version für 4.02 besitze ich gar nicht, für PB 4.20 befindet sich auf Realsource :wink:
Ansonsten ist in dem Paket auch eine Include mit Beispielen und die läuft auch mit PB5.11 (x86)
problemlos. Hab mich schon länger über die Signatur gewundert :mrgreen:

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 16:52
von HemSA
Hallole und Danke an Alle,

@Kiffi - Ja ich werde das Date() verwenden ( vergangene Sekunden seit Neujahr 01.01.1970 ). Da kommt es dann auf das Datumformat nicht mehr an, kommt überall das Gleiche raus.

@HeXOR - Das denke ich auch, spinnt auch bei alten Programmen.

@ts-soft - Ich kann mich nicht mehr recht erinnern, aber ich glaube ab PureBasic Version 4.20 hat es mit dem Kompilieren/Starten von dem Programm nicht mehr geklappt was ohne Änderungen mit PureBasic Version 4.02 ohne Probleme ging.

Ich denke so müsste es funktionieren das es ab Anfang August nicht mehr lauffähig ist.

Code: Alles auswählen

Repeat      
  
    heute.l=Date()
    EventID = WaitWindowEvent() 
    
    If EventID = #PB_Event_CloseWindow 
      Quit = 1 
    EndIf 
    
    If heute.l>1342656000 ; Vergangene Sekunden von 01.01.1970 bis Anfang August 2013    
       Quit = 1
    EndIf 
    
    If EventID = #PB_Event_Gadget    
      
      If EventGadget()=6
         Hauptprogramm()
      EndIf 
           
    EndIf 
      
Until Quit=1 


Was meint ihr dazu? Ich kann es erst morgen testen, da wie gesagt mein PC was die Sache angeht gerade die Mucken hat ( 4.02 streikt bei Date(), 5.11 bei Disphelper).

Tschüssle und noch einen schönen Tag
Michael

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 17:08
von Kiffi
brauchst Du nicht in die Repeat-Schleife zu stecken.

Direkt in den ersten Zeilen Deines Codes:

Code: Alles auswählen

If Date() > 1342656000 ; Vergangene Sekunden von 01.01.1970 bis Anfang August 2013    
  End
EndIf


Kann man das auch schneller finden, um es zu entfernen,
wenn Dein AG das Programm bezahlt. :-)

Grüße ... Kiffi

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 17:33
von HemSA
Hallo Kiffi,
aber in der Repeat Schleife ist es doch wie ich es beschrieben habe doch auch Ok oder (das finde ich schon wieder :-) )?

Die Sache ist das das Programm wenn es mal gestartet ist und es keine Probleme gibt rund um die Uhr monatelang immer läuft.
Also keinen täglichen Neustart (dann wäre dein Vorschlag ok ).

Oben habe ich ja die Prozeduren stehen, sprich in die allererste Zeile komme ich nach einem Neustart normalerweise nicht mehr hin.

Deshalb meine Idee es in die Repeat Schleife zu stecken wo es dann eigendlich immer abgefragt wird.

Tschüssle
Michael

Re: Programmstop nach einem bestimmten Datum (vers Datumsfor

Verfasst: 01.05.2013 17:56
von Kiffi
HemSA hat geschrieben:rund um die Uhr monatelang immer läuft.
ok, das wusste ich nicht. Dann ist es in der Schleife besser aufgehoben.

Grüße .... Kiffi