FUNCTION UserFullName(lcUserName) LOCAL lcUserName, lnAddress, lcFullName LOCAL lcPtr2, lnPtr2 DECLARE Long NetUserGetInfo IN netapi32 String, String, Long, Long@ DECLARE Long NetApiBufferFree IN netapi32 Long lcUserName = IIF(EMPTY(lcUserName), GETENV("username"), lcUserName) lnAddress = 0 lcFullName = "" IF NetUserGetInfo(NULL, STRCONV(lcUserName+CHR(0),5), 10, @lnAddress) = 0 lcPtr2 = SYS(2600, lnAddress+12, 4) lnPtr2 = BITXOR(CTOBIN(CHRTRAN("ABCD","DCBA",lcPtr2)),0x80000000) lcFullName = SYS(2600, lnPtr2, 512) lcFullName = STRCONV(lcFullName,6) IF CHR(0) $ lcFullName lcFullName = LEFT(lcFullName, AT(CHR(0), lcFullName)-1) ENDIF NetApiBufferFree(lnAddress) ENDIF RETURN lcFullName