home *** CD-ROM | disk | FTP | other *** search
- { 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 };
-