[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]