HDSoftware Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Heisan folkens. Jeg har laget meg et enkelt antipirat system på mine programmer som fungerer gangks greit. Dette er laget i Clarion og jeg ønsker å benytte dette i VB appene mine også. Står dermed fast på dette med dato og tid. I Clarion er dato og tid utrolig enkelt da de kun er definert som to LONG verdier og jeg kan formatere disse verdiene til en dato streng slilk: MyDate LONG MyTime LONG MyDateStr STRING(20) MyTimeStr STRING(20) Dermed har jeg to LONG som representerer dato og klokkeslett. Disse kan jeg sette til dagens dato slik: MyDate = Today() MyTime = Clock() For å vise dato og tid i en streng kan jeg formatere ved bruk av noen PICTURE formater som er definert i Clarion MyDateStr = Format(MyDate,@D18) ' @d18 er windows Long date format MyTimeStr = Format(MyTime,@t1) ' @t1 = "HH:MM" Fordelen med dette er at jeg kan regne med dato og tid akkurat som jeg vil da MyDate representerer et vist antall dager siden en dato en gang på 1800 tallet og MyTime representerer antall 100 dels sekunder siden midnatt Derfor: MyDate += 10 ' MyDate er om 10 dager MyDate -= 5 ' MyDate er nå kunn om 5 dager MyDate += 365 ' MyDate er nå dagens dato om et år I mit antipirat system så lagrer jeg en del verdier i en kryptert fil på følgende måte if Lisens.next() = FALSE ' Ingen lisensposter i filen Lisens.InstallDato = Today() Lisens.SisteKjoringsdato = today() Lisens.HDSerial = VolumeSerial Lisens.GyldigTil = Today() + 128 ' 128 dager til program må aktiveres etc. etc. else if Today() < Lisens.SisteKjoredato or VolumeSerial <> Lisens.HDSerial ' Noen har tukla med systemdato eller muligens byttet/formatert harddisk Behandle situasjon Elsif Today() > (Lisens.GyldigTil - 10) ' 10 eller mindre dager til lisensen går ut. Må håndtere dette ........ Som dere skjønner er jeg rimelig avhengig av dato kalkulering. Noen ide? Ole Lenke til kommentar
aadnk Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Dato-klassen inkluderer en rekke metoder for manipulering av datoer: Public Sub HandleSerial(ByVal File As String) If Lisens.next() = False Then ' Ingen lisensposter i filen Lisens.InstallDato = Date.Today Lisens.SisteKjoringsdato = Date.Today Lisens.HDSerial = GetVolumeSerial ' http://www.eggheadcafe.com/articles/20021019.asp Lisens.GyldigTil = Date.Today.AddDays(128) ' 128 dager til program må aktiveres Else If Date.Today < Lisens.SisteKjoredato Or VolumeSerial <> Lisens.HDSerial Then ' Noen har tukla med systemdato eller muligens byttet/formatert harddisk Behandle(situasjon) ElseIf Date.Today > Lisens.GyldigTil.AddDays(-10) Then ' 10 eller mindre dager til lisensen går ut. Må håndtere dette End If End If End Sub Lenke til kommentar
HDSoftware Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 Ahh, strøkent. Dette er hva jeg er ute etter. Men en ting til... Jeg lagrer jo all denne informasjonen i en egen tekst streng. Derfor må jeg egentlig ha tallverdien av datoen. Jeg kan kansje regne ut denne ved å kalkulere differanse mellom 010101 og den aktuelle dato. Jeg gjør dette fordi jeg da kan kryptere med 3DES som krypterer strenger. Kansje jeg skulle vurdert noe annet her... vi får se takker Ole Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå