home *** CD-ROM | disk | FTP | other *** search
- { all ECO Library II functions are available in source }
- uses
- eco_lib,
- { longint <--> date conversion }
- { __num, __longint2date }
- eco_reg
-
- ;
-
-
-
-
-
- function __cvttoken(s: string; w: word): string;
- var
- i : byte;
- st : string;
-
- begin
- i := pos('N', keytypes[validuser.typeofkey]);
- delete(s, i, 1); st := __num(w); insert(st, s, i);
- __cvttoken := s;
- end;
-
-
-
- var i : byte;
-
-
-
- begin
- with validuser do begin
- keyfilename := 'e.key';
- programmer := 'UltiHouse Software';
- programkey := 'e';
- upgradecode := 'Rel2.1';
- registered := 'Floor A.C. Naaijkens';
- typeofkey := keyexpiration;
- {
- keypermanent, key30day, key30runs, keynday, keynruns,
- keyexpiration, keyreserved1, keyreserved2
- }
- expireamount := 25;
- creation := __curdate2longint;
- expiredate := __date2longint('20 Sep 92 12:00.00');
- end;
-
- if (paramstr(1) = '/r') then begin
- writeln('Enter your name:');
- readln(validuser.registered);
- writeln('Enter the level:');
- readln(validuser.keylevel);
- writeln('Enter the registration key:');
- readln(validuser.keycreator);
- validuser.keycreator := __up(validuser.keycreator);
- if checkcreator(validuser) then with validuser do begin
- writeln('KEY CREATED'); typeofkey := keypermanent;
- expiredate := __date2longint('31 Dec 99 00:00.00');
- createkey(validuser);
- end else keyerror := keyerror + [errorbadcrc];
- end else if checkkey(validuser) then writeln(
- 'Totally registered version'
- ) else writeln('Restrictions ARE imposed.');
-
- if errornokey in keyerror then writeln(keyerrors[errornokey ]);
- if errorkeycopyright in keyerror then writeln(keyerrors[errorkeycopyright]);
- if errorkeyposession in keyerror then writeln(keyerrors[errorkeyposession]);
- if errorkeydate in keyerror then writeln(keyerrors[errorkeydate ]);
- if errorkeyunknown in keyerror then writeln(keyerrors[errorkeyunknown ]);
- if errorinternal in keyerror then writeln(keyerrors[errorinternal ]);
- if errorprogrammer in keyerror then writeln(keyerrors[errorprogrammer ]);
- if errorversion in keyerror then writeln(keyerrors[errorversion ]);
- if errorbadcrc in keyerror then writeln(keyerrors[errorbadcrc ]);
-
- with validuser do begin
- if typeofkey in [keynday, keynruns] then begin
- writeln('"',__cvttoken(keytypes[typeofkey], expireamount),'"');
- end else if validuser.typeofkey = keyexpiration then begin
- writeln('Key expires : ', __longint2date(expiredate), ' (in ',
- __diff(creation, expiredate), ' days).'
- );
- end else writeln('Type : "', keytypes[typeofkey], '"');
-
- writeln('Creation : ', __longint2date(creation) );
- writeln('Registered : ', registered );
- writeln('Keyfilename : ', keyfilename );
- writeln('Programkey : ', programkey );
- writeln('Programmer : ', programmer );
- writeln('Upgradecode : ', upgradecode );
- writeln('Keylevel : ', keylevel );
- writeln('Invokes : ', invokes );
- writeln('Amount : ', expireamount);
- end;
-
- {
- the difference between nday and expiration is, that expiratinkeys have
- "hardcoded" day expiration, whilst nday, start counting on the day they're
- first used. how this is handy, i still don't know, (security) but i feel
- this might turn out to be implementable very soon now...
- }
-
- { show use of __diff (clumsy way this time, but you have creation et all.) }
- (*
- writeln(
- __diff(
- __date2longint('20 Aug'),
- __date2longint('20 Sep')
- )
- ); { This is enough to work, but specifying dd MMM yy hh:mm.ss won't hurt }
- *)
-
- { YOU NOW HAVE ALL INFO, DO WITH IT, YOU, THE PROGRAMMER, THINK IS NESSECARY }
- end.
-