home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / r / rkpls301.zip / RKPDEMO2.ZIP / SAMPLE2.PAS < prev    next >
Pascal/Delphi Source File  |  1993-03-04  |  6KB  |  234 lines

  1. Program Sample2;
  2.  
  3. {
  4.  This is a demonstration program using RkPlus.
  5.  It uses 2 registration levels (0 and 1).
  6.  If a Level 1 key has expired, it will be treated as Level 0.
  7.  If a Level 0 key has expired, it will be treated as Unregistered.
  8.  This is a very simple program that doesn't actually do anything, but it
  9.  should demonstrate some of what can be done with RkPlus.
  10.  
  11.  It is identical to Sample1, except that it also contains a built-in
  12.  registration routine, instead of using an external registration program
  13.  (such as Register).  It uses the same keys as Sample1, which can be created
  14.  with the GenKey programme.
  15.  
  16.  Sample2 uses the Rkp2Enc unit to cause RkPlus to maintain version
  17.  2.x/compatible keys.
  18. }
  19.  
  20.  
  21. Uses
  22.   Crt,
  23.   RkPlus,
  24.   Rkp2Enc;
  25.  
  26.  
  27. Const
  28.   MonthNames : Array[1..12] of String[3]
  29.   = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
  30.  
  31.  
  32. Var
  33.   kc  : Char;
  34.   lcv : Byte;
  35.  
  36.  
  37. Procedure BadRegBeep;
  38.  
  39. Begin
  40.   Sound(1200);
  41.   Delay(200);
  42.   Sound(600);
  43.   Delay(200);
  44.   Sound(1200);
  45.   Delay(200);
  46.   Sound(600);
  47.   Delay(200);
  48.   NoSound;
  49. End;
  50.  
  51.  
  52. Procedure NotRegBeep;
  53.  
  54. Begin
  55.   Sound(600);
  56.   Delay(200);
  57.   Sound(1200);
  58.   Delay(200);
  59.   NoSound;
  60. End;
  61.  
  62.  
  63. Procedure DoView;
  64.  
  65. Begin
  66.   WriteLn('Sample data :');
  67.   WriteLn;
  68.   WriteLn('4.465536  7.918270  0.118373  5.367233');
  69.   WriteLn('1.396349  4.868343  7.079323  4.783021');
  70.   WriteLn('3.947924  8.864673  8.846264  2.999999');
  71.   WriteLn('8.490832  6.874378  5.338329  3.729270');
  72.   WriteLn('6.839882  8.873478  6.750373  7.018948');
  73.   WriteLn('5.034784  3.003763  3.253290  4.892387');
  74.   WriteLn('3.874378  8.314159  9.880869  3.987842');
  75.   WriteLn('2.764947  9.265358  4.013002  9.903278');
  76. End;
  77.  
  78.  
  79. Procedure DoCalc;
  80.  
  81. Begin
  82.   If Rkp.Registered then Begin
  83.     Write('The calculated result is ');
  84.     WriteLn(4.465536+7.918270+0.118373+5.367233+1.396349+4.868343+7.079323+4.783021
  85.     +3.947924+8.864673+8.846264+2.999999+8.490832+6.874378+5.338329+3.729270
  86.     +6.839882+8.873478+6.750373+7.018948+5.034784+3.003763+3.253290+4.892387
  87.     +3.874378+8.314159+9.880869+3.987842+2.764947+9.265358+4.013002+9.903278);
  88.   End Else
  89.     WriteLn('Only available in registered version!');
  90. End;
  91.  
  92.  
  93. Procedure DoTest;
  94.  
  95. Begin
  96.   If Rkp.Registered then Begin
  97.     If (Rkp.Level > 0) then Begin
  98.       Write('Performing tests...');
  99.       Delay(300);
  100.       WriteLn;
  101.       WriteLn('All tests passed.');
  102.     End Else
  103.       WriteLn('Not available in demo version!');
  104.   End Else
  105.     WriteLn('Only available in registered version!');
  106. End;
  107.  
  108.  
  109. Procedure DoRegister;
  110.  
  111. Begin
  112.   Write('Enter name of person to register : ');
  113.   ReadLn(Rkp.Name1);
  114.   WriteLn;
  115.   Write('Enter the registration key : ');
  116.   ReadLn(Rkp.Key);
  117.   WriteLn;
  118.   Rkp.ID := '(c) Serious Cybernetics';
  119.   Rkp.Message := 'Sample2';
  120.   Rkp.Name2 := '';
  121.   Rkp.Name3 := '';
  122.   Rkp.Level := 0;
  123.   VerifyKey;
  124.   If Not Rkp.Registered then Begin
  125.     Rkp.Level := 1;
  126.     VerifyKey;
  127.   End;
  128.   If Not Rkp.Registered then
  129.     WriteLn('Invalid key!')
  130.   Else Begin
  131.     SaveRegInfo;
  132.     If RkpOK then
  133.       WriteLn(KeyFileName,' created.')
  134.     Else
  135.       WriteLn('Error ',RkpError,' creating file.');
  136.   End;
  137. End;
  138.  
  139.  
  140. Begin
  141.   If BadSystemDate then Begin
  142.     WriteLn('You must correctly set your system clock to run Sample2!');
  143.     BadRegBeep;
  144.     Halt(1);
  145.   End;
  146.   OwnerCode := 'ArgleBarbWotsLeeb';
  147.   ProgramCode := 'Sample';
  148.   SetKeyFile('Sample');
  149.   GetRegInfo;
  150.   Write('Sample2');
  151.   If Not RkpOK then
  152.     WriteLn(' [invalid]')
  153.   Else If Rkp.Registered and (Rkp.Level > 0) then
  154.     WriteLn(' [registered]')
  155.   Else If Rkp.Registered then
  156.     WriteLn(' [demo]')
  157.   Else
  158.     WriteLn(' [unregistered]');
  159.   WriteLn('Sample of RkPlus method 3 (using version 2.x/compatible keys)');
  160.   WriteLn('See RKPLUS.DOC for more info');
  161.   WriteLn;
  162.   If (RkpError = InvalidFile) or (RkpError = InvalidKey) then Begin
  163.     WriteLn(KeyFileName,' has been altered!');
  164.     BadRegBeep;
  165.     Halt(1);
  166.   End Else If (RkpError = ExpiredKey) then Begin
  167.     If (Rkp.Level > 0) then Begin
  168.       WriteLn('Your registration key has expired!');
  169.       WriteLn('You will be given access at the DEMO level.');
  170.       NotRegBeep;
  171.       Rkp.Level := 0;
  172.     End Else Begin
  173.       WriteLn('Your demo key has expired!');
  174.       WriteLn('You will be given access at the UNREGISTERED level.');
  175.       NotRegBeep;
  176.       Rkp.Registered := False;
  177.     End;
  178.   End Else If Rkp.Registered then Begin
  179.     If (Rkp.Level > 0) then Begin
  180.       WriteLn('This version of Sample2 is registered to ',Rkp.Name1);
  181.       If (Rkp.ExpYear <> 0) and (Rkp.ExpMonth <> 0) then
  182.         WriteLn('This registration will expire ','1-',MonthNames[Rkp.ExpMonth],'-',Rkp.ExpYear,'.');
  183.       WriteLn('Thank you for registering!');
  184.     End Else Begin
  185.       WriteLn('This version of Sample2 is a limited use demo for ',Rkp.Name1);
  186.       If (Rkp.ExpYear <> 0) and (Rkp.ExpMonth <> 0) then
  187.         WriteLn('This demo will expire ','1-',MonthNames[Rkp.ExpMonth],'-',Rkp.ExpYear,'.');
  188.       WriteLn('Don''t forget to register!');
  189.     End;
  190.   End Else If Not RkpOK then Begin
  191.     WriteLn('Unexpected error ',RkpError,'!');
  192.     Halt(255);
  193.   End Else Begin
  194.     WriteLn('This version of Sample2 is unregistered.');
  195.     WriteLn('Contact TrendSoft, Inc. to register or obtain a limited use Sample key.');
  196.     NotRegBeep;
  197.     Delay(500);
  198.   End;
  199.   WriteLn;
  200.   WriteLn('Sample2 Menu');
  201.   WriteLn;
  202.   WriteLn('[V]iew sample data');
  203.   Write('[C]alculate');
  204.   If Not Rkp.Registered then
  205.     WriteLn('  (only available in registered version)')
  206.   Else
  207.     WriteLn;
  208.   Write('[T]est results');
  209.   If Not Rkp.Registered then
  210.     WriteLn('  (only available in registered version)')
  211.   Else If (Rkp.Level <= 0) then
  212.     WriteLn('  (not available in demo version)')
  213.   Else
  214.     WriteLn;
  215.   WriteLn('[R]egister');
  216.   WriteLn;
  217.   Write('Selection : ');
  218.   kc := UpCase(ReadKey);
  219.   WriteLn;
  220.   WriteLn;
  221.   Case kc of
  222.   'V' :
  223.     DoView;
  224.   'C' :
  225.     DoCalc;
  226.   'T' :
  227.     DoTest;
  228.   'R' :
  229.     DoRegister;
  230.   Else
  231.     WriteLn('Invalid selection!');
  232.   End;
  233. End.
  234.