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