[Back to NETWORK SWAG index] [Back to Main SWAG index] [Original]
{ TS> Can anybody help me finding the interrupt For getting
TS> a novell current user_name and the current station adress ??
}
Procedure GetConnectionInfo
(Var LogicalStationNo: Integer; Var Name: String; Var HEX_ID: String;
Var ConnType : Integer; Var DateTime : String; Var retcode:Integer);
Var
Reg : Registers;
I,X : Integer;
RequestBuffer : Record
PacketLength : Integer;
FunctionVal : Byte;
ConnectionNo : Byte;
end;
ReplyBuffer : Record
ReturnLength : Integer;
UniqueID1 : Packed Array [1..2] of Byte;
UniqueID2 : Packed Array [1..2] of Byte;
ConnType : Packed Array [1..2] of Byte;
ObjectName : Packed Array [1..48] of Byte;
LoginTime : Packed Array [1..8] of Byte;
end;
Month : String[3];
Year,
Day,
Hour,
Minute : String[2];
begin
With RequestBuffer Do begin
PacketLength := 2;
FunctionVal := 22; { 22 = Get Station Info }
ConnectionNo := LogicalStationNo;
end;
ReplyBuffer.ReturnLength := 62;
With Reg Do begin
Ah := $e3;
Ds := Seg(RequestBuffer);
Si := ofs(RequestBuffer);
Es := Seg(ReplyBuffer);
Di := ofs(ReplyBuffer);
end;
MsDos(Reg);
name := '';
hex_id := '';
connType := 0;
datetime := '';
if Reg.al = 0 then begin
With ReplyBuffer Do begin
I := 1;
While (I <= 48) and (ObjectName[I] <> 0) Do begin
Name[I] := Chr(Objectname[I]);
I := I + 1;
end { While };
Name[0] := Chr(I - 1);
if name<>'' then
begin
Str(LoginTime[1]:2,Year);
Month := Months[LoginTime[2]];
Str(LoginTime[3]:2,Day);
Str(LoginTime[4]:2,Hour);
Str(LoginTime[5]:2,Minute);
if Day[1] = ' ' then Day[1] := '0';
if Hour[1] = ' ' then Hour[1] := '0';
if Minute[1] = ' ' then Minute[1] := '0';
DateTime := Day+'-'+Month+'-'+Year+' ' + Hour + ':' + Minute;
end;
end { With };
end;
retcode := reg.al;
if name<>'' then
begin
hex_id := '';
hex_id := hexdigits[replybuffer.uniqueid1[1] shr 4];
hex_id := hex_id + hexdigits[replybuffer.uniqueid1[1] and $0F];
hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] shr 4];
hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] and $0F];
hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] shr 4];
hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] and $0F];
hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] shr 4];
hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] and $0F];
ConnType := replybuffer.connType[2];
{ Now we chop off leading zeros }
While hex_id[1]='0' do hex_id := copy(hex_id,2,length(hex_id));
end;
end; { GetConnectInfo };
[Back to NETWORK SWAG index] [Back to Main SWAG index] [Original]