home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / pascal / 7546 < prev    next >
Encoding:
Internet Message Format  |  1992-12-17  |  3.3 KB

  1. Path: sparky!uunet!mcsun!sun4nl!wtrlnd!contrast!postmaster
  2. From: berend@contrast.wlink.nl (Berend de Boer)
  3. Newsgroups: comp.lang.pascal
  4. Subject: REQUEST: novell interrupt  
  5. Message-ID: <724498551.AA00780@contrast.wlink.nl>
  6. Date: Wed, 16 Dec 1992 08:42:42
  7. Sender: postmaster@contrast.wlink.nl
  8. Lines: 97
  9.  
  10. Trygve Storr|nningen wrote in a message to All:
  11.  
  12.  TS> Can anybody help me finding the interrupt for getting 
  13.  TS> a novell current user_name and the current station adress ??
  14.  
  15. Procedure GetConnectionInfo
  16. (Var LogicalStationNo: Integer; Var Name: String; Var HEX_ID: String;
  17.  Var ConnType : Integer; Var DateTime : String; Var retcode:integer);
  18.  
  19. Var
  20.   Reg            : Registers;
  21.   I,X            : Integer;
  22.   RequestBuffer  : Record
  23.                      PacketLength : Integer;
  24.                      FunctionVal  : Byte;
  25.                      ConnectionNo : Byte;
  26.                    End;
  27.   ReplyBuffer    : Record
  28.                      ReturnLength : Integer;
  29.                      UniqueID1    : Packed Array [1..2] of byte;
  30.                      UniqueID2    : Packed Array [1..2] of byte;
  31.                      ConnType     : Packed Array [1..2] of byte;
  32.                      ObjectName   : Packed Array [1..48] of Byte;
  33.                      LoginTime    : Packed Array [1..8] of Byte;
  34.                    End;
  35.   Month          : String[3];
  36.   Year,
  37.   Day,
  38.   Hour,
  39.   Minute         : String[2];
  40.  
  41. Begin
  42.   With RequestBuffer Do Begin
  43.     PacketLength := 2;
  44.     FunctionVal := 22;  { 22 = Get Station Info }
  45.     ConnectionNo := LogicalStationNo;
  46.   End;
  47.   ReplyBuffer.ReturnLength := 62;
  48.   With Reg Do Begin
  49.     Ah := $e3;
  50.     Ds := Seg(RequestBuffer);
  51.     Si := Ofs(RequestBuffer);
  52.     Es := Seg(ReplyBuffer);
  53.     Di := Ofs(ReplyBuffer);
  54.   End;
  55.   MsDos(Reg);
  56.   name := '';
  57.   hex_id := '';
  58.   conntype := 0;
  59.   datetime := '';
  60.   If Reg.al = 0 Then Begin
  61.     With ReplyBuffer Do Begin
  62.       I := 1;
  63.       While (I <= 48)  and (ObjectName[I] <> 0) Do Begin
  64.         Name[I] := Chr(Objectname[I]);
  65.         I := I + 1;
  66.       End { while };
  67.       Name[0] := Chr(I - 1);
  68.       if name<>'' then
  69.       begin
  70.        Str(LoginTime[1]:2,Year);
  71.        Month := Months[LoginTime[2]];
  72.        Str(LoginTime[3]:2,Day);
  73.        Str(LoginTime[4]:2,Hour);
  74.        Str(LoginTime[5]:2,Minute);
  75.        If Day[1] = ' ' Then Day[1] := '0';
  76.        If Hour[1] = ' ' Then Hour[1] := '0';
  77.        If Minute[1] = ' ' Then Minute[1] := '0';
  78.        DateTime := Day+'-'+Month+'-'+Year+' ' + Hour + ':' + Minute;
  79.       End;
  80.     End { with };
  81.   End;
  82.   retcode := reg.al;
  83.   if name<>'' then
  84.   begin
  85.    hex_id := '';
  86.    hex_id := hexdigits[replybuffer.uniqueid1[1] shr 4];
  87.    hex_id := hex_id + hexdigits[replybuffer.uniqueid1[1] and $0F];
  88.    hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] shr 4];
  89.    hex_id := hex_id + hexdigits[replybuffer.uniqueid1[2] and $0F];
  90.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] shr 4];
  91.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[1] and $0F];
  92.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] shr 4];
  93.    hex_id := hex_id + hexdigits[replybuffer.uniqueid2[2] and $0F];
  94.    ConnType := replybuffer.conntype[2];
  95.   { Now we chop off leading zeros }
  96.    while hex_id[1]='0' do hex_id := copy(hex_id,2,length(hex_id));
  97.  End;
  98. End { GetConnectInfo };
  99.  
  100.  
  101. Groetjes,
  102.  
  103. Berend. (-:
  104. fido: 2:281/527.23
  105. email: berend@contrast.wlink.nl
  106.  
  107.