[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    {
    I wrote a similar little program, to register who are using a particular
    program on the network. I think you can get the same done using a
    simple batch file system - since this is only for statistical information.
    I would use the following batch commands in STUDENT.BAT:
    LOGIN %1
    REGISTER H:\wherever\LOG.REG %1

    It assumes your login script makes an enviroment variable called
    NAME=usersname
    But used like above it doen't matter.
    Call STUDENT.BAT with
    STUDENT studentloginname

    All that register.exe needs to do is to take it's parameter, add a date and
    time stamp (GetDate & GetTime) and writeln everything to a text file.

    Yes, there is no protection again normal, unregistered logins, but then that
    is not what you asked for?
    BTW, I edited it a bit in the mailer - there may be a sintax error...

    Cheers,
    Harry.
    {------------------------------------------------------------------------}
    program Register;
    {   Used to register users of a program. }
    uses Dos;
    var
       F:text;
       FN,Remark:string;
       YY,MM,DD,DOW,H,M,S,ss,Retry:word;

    function D0(i:word):string;
       var S:string;
       begin
          str(I,S);
          if length(S)=1 then S:='0'+S;
          D0:=S;
       end;

    begin
       if ParamCount<1 then begin
          writeln('Use: REGISTER  path\filename.REG  remark');
          writeln('   where path\file.REG is a text file where the user will be logged.');
          writeln('   The user must have read/write access to this path.');
          writeln('   The remark can be anything, ex.: "logging_in" or "logging_out"');
       end else begin
          FN:=ParamStr(1);
          if ParamCount>=2 then Remark:=paramstr(2) else Remark:='';
          if copy(FN,length(FN)-3,4)<>'.REG' then
             writeln('Invalid log file: ',FN)
          else begin
             assign(F,ParamStr(1));
             {$I-}
             if FSearch(ParamStr(1),'')<>ParamStr(1) then rewrite(F);
             retry:=255;
             repeat append(F); dec(retry); until (retry=0) or (IOResult=0);
             {This is only for if the program tries to register two users at
              the same time}
             if IOResult<>0 then begin
                writeln('Log file not found/accesable.');
                halt;
             end;
             {$I+}
             GetDate(YY,MM,DD,DOW);
             GetTime(H,M,S,ss);
             writeln(F,D0(YY),'/',D0(MM),'/',D0(DD),', ',
                       D0(H),'h',D0(M),':',D0(S),',  ',
                       GetEnv('NAME'),',  ',Remark);
             close(F);
          end;
       end;
    end.

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]