{ > Okay, here goes. I am using Borland Pascal 7.0 under MS-Dos 5.0. >Basically, the Program I am writing will be run under Novell Netware >3.11. What I need to do is determine the User's full user name. I >could do this using Novell Interrupts, but they are impossible to figure >out (At least For me). So what I wanted to do, was use Novell's >"WHOAMI" command. What this does is return the user's full name and Well, I think you'll find it harder to to a Dos exec and parse the output after reading it from a File than asking Netware what it is. Plus you must depend on the user having access to use the command. I'm on some Novell networks where that command File is not present because it wasn't considered important. Here's how to get the user name from Netware... } Program UserID; Uses Dos, Strings; Type RequestBuf = Record RequestLen : Word; { Number of Bytes in the rest of the Record } SubFunction : Byte; { Function from Novell we are requesting } ConnectionNum : Byte; { Connection number that is making the call } end; ReplyBuf = Record ReplyLength : Word; { Number of Bytes in the rest of the Record } ObjectId : LongInt; { Novell refers to everything by Objects like users} ObjectType : Word; ObjectName : Array[1..48] of Char; LoginTime : Array[1..7] of Char; end; Var I:Word; ReqBuf : RequestBuf; RepBuf : ReplyBuf; Regs : Registers; UserName : String[48]; begin Regs.AH := $DC; MsDos(Regs); { Get the connection number } ReqBuf.RequestLen := 2; { User ID request, must give connection } ReqBuf.SubFunction := $16; { number } ReqBuf.ConnectionNum := Regs.AL; RepBuf.ReplyLength := 61; { Return buffer For name } Regs.AH := $E3; { Call Novell For user name } Regs.DS := Seg(ReqBuf); { Passing it the request buffer indicating } Regs.SI := Ofs(ReqBuf); { the data we want and a reply buffer to send } Regs.ES := Seg(RepBuf); { us back the information } Regs.DI := Ofs(RepBuf); MsDos(Regs); { Object name now contians the users ID, use the StringS Unit Functions } { to print the null-terminated String } WriteLn(StrPas(@RepBuf.ObjectName)); end. { That will read in a Novell User ID For you. }