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

    {
    From: NORBERT IGL
    Subj: Netware "User name"

     I need a way to get the current user name from the netware shell.
     For instance, if I'm logged into server MYSERVER as user SUPERVISOR,
     I need some way to get 'supervisor' as the user name.  (Kind of like
     WHOAMI would return: You are user SUPERVISOR on server MYSERVER)
    }

    uses dos;

    function lStationNumber:byte;   { MY logical Station(connection)-Number }
    var   regs     : Registers;
    begin
       regs.ah := $DC;
       MsDos(regs );
       lStationNumber := pcregs.al;
    end;

    function GetUserName( Station: byte):String;
    Var
      i               : byte;
      Regs            : Registers;
      name            : string[50];
      Reply    : Record
                    Filler1      : Array [1..8] of byte;
                    ObjectName   : Array [1..48] of Byte;
                    Filler2me    : Array [1..8] of Byte;
                 End;
      Request : Record
                   PacketLen : Integer;
                   vFunc     : Byte;
                   ConnNb    : Byte;
                 End;

    Begin
      With Request do
      begin
        PacketLen := 2;
        vFunc     := 22;
        ConnNbm   := Station;
      End;
      Reply.ReturnLength := 62;
      With Regs Do Begin
        Ah := $e3;
        Ds := Seg(Request);
        Si := Ofs(Request);
        Es := Seg(Reply);
        Di := Ofs(Reply);
      End;
      MsDos(Reg);
              {         1         2         3         4        }
              {123456789012345678901234567890123456789012345678}
      name := '                                                ';
      If Regs.al = 0 Then with reply do
      begin
         move( objectName[1] , name[1], 48 );
         i := pos(#0, name );
         name[0] := char(i-1);
      end;
    end;

    [...]

    var me : byte;

    begin
       me := lStationNumber;
       writeln(' Hello, ', GetUserName( me ),
               ' you''re hooked in on Station # ', me );
    end.

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