Den nemmeste måde er nok at: - Registrerede programmer gemmer en eller anden key value i registrerings databasen. Du kan evt. forklæde den lidt ved at kalde den et eller andet i stile med en af de sædvanlige keyvalues i reg-basen. Evt. kan du gemme den som en GUID (Global Uniqe IDentifer) sammen med den million andre der er af den slags i Reg-basen. Alternativt kan du benytte/oprette en datafil i samme bibliotek som selve programmet. Der er flere metoder, men disse to er hyppigst anvendt. - Der skal være en form, hvor man kan indtaste brugerID og password/registreringskode. Denne form kaldes typisk fra Help menuen, evt. About-boxen. Gyldig indtastning opretter ovennævnte value. - De steder hvor der testes for registreret program, laver du noget kode i retning af:
Procedure SaveToFile(DataToSave : Txx); Begin If Not RegistreretProgram Then NagScreen.Show; // ShowModal??
SaveToFile(GetFileName, DataToSave); End;
Funktionen RegistreretProgram skal tydeligvis undersøge om den pågældende value er opretet i registreringdatabasen (etc.) og returnere True i såfald.
programmet skal ikke kunne åbnes med et Id/reg kode. jeg mener der er ingen grund til at lave about box til indtastning af id/reg kode, fordi muligheden for at programmet bliver patched er stor. kan man ikke bruge en timer funktion så nagscreen virker efter 30-60 dage?
Hvis du vil bruge en timerfunktion SKAL programmet være aktivt hele tiden i de 30 dage, ellers vil den jo bare starte forfra når programmet aktiveres igen.
For at holde styr på det skal du have en var et eller andet sted der vedligeholdes selvom maskinen er slukket. Ganske som Delphi foreslår. Og dermed er der mulighed for at omgås det.
Men.. jeg har et andet forslag der dog kræver lidt special programmering, og du skal styre det fra dit program:
Grundprincippet er at du kender hhv. dato og tidspunkt for genereringen af EXE filen. Ved at checke dit programs "fildato" i starten af programmet kan du styre en del.
Det kan selvfølgeligt stadig omgås, ved at fjerne det og installere det igen, men det gælder for alle (med mindre du kan skjule en var i registry, som delphi foreslår, og så checke om den findes ved opstart. Den kan jo evt. have en værdi der svarer til antallet af dage siden en bestemt dato, og du kan desuden gemme en var med et tilfældigt indhold ved installationen, og ved hver installation checker du om denne var allerede findes. Dermed har programmet jo allerede været installeret.
Princippet med "fildato":
Da du kender dit programs dato/tid, kan du checke denne ved opstart. Hvis det er den samme så retter du den til aktuel dato/tid og dermed begynder din 30-dages periode. Hvis den ikke er den samme så checker du antallet af dage mellem programdatoen og den aktuelle. Er den større end 29 dage viser du dit nagscreen.
Hvis du bruger et installationsprogram så kan du i dette eksekvere et lille prorgam der sætter dato/tid for dit program til maskinens aktuelle dato/tid, ellers må du gøre det i selve programmet.
Men.. Problemet med denne løsning, og alle andre der benytter en tid, er at man kan sætte datoen i maskinen tilbage og dermed bruge det igen.
En anden mulighed er at sættes en var i reg. som beskrevet tidligere men i dette tilfælde tælle den op hver gang programmet startes og det er en ny dag. Når tælleren når 30 viser du dit nagscreen. Hvis du kombinerer det med en anden var (et andet sted/et andet navn) med en værdi der fortæller dig hvor mange dage der er gået siden programmet blev startet første gang, så skulle du kunne klare de fleste forsøg. Selv det med at sætte datoen tilbage.
Jeg håber at du har fået nogle ideer..
sjensen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.