Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
GetUserNAme
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Fonctions Windows API
Titre:
Divers
Thread ID:
00188863
Message ID:
00189034
Vues:
16
Peter,

Try the following code. You must have a copy of the POINTERS class which can be found here in the UT.

lcUserName = ALLTRIM(SUBSTR(SYS(0),AT("#",SYS(0))+2))
*-- Will return the values you need in a public array called aUserInfo
? NetUserGetInfo( lcUserName, "aUserInfo" )

display memory like aUserInfo*

**************************
FUNCTION NetUserGetInfo( tcUserName, tcArrayName )
**************************

DECLARE INTEGER NetUserGetInfo;
IN NETAPI32 AS NetUserGetInfo_A ;
STRING @ServerName,;
STRING @UserName,;
INTEGER UserInfoStructureType,;
INTEGER @PointerToUserInfoStructure

LOCAL loPointersObject, lnError, lnpInfo, lcFlags, lnFlags

*-- Convert strings to Unicode.
lcServer = ""
lcServer = STRCONV(STRCONV(lcServer + CHR(0), 1), 5)
lcUserName = STRCONV(STRCONV(tcUserName + CHR(0), 1), 5)

*-- Create the Pointers Class object
SET CLASSLIB TO POINTERS ADDITIVE
loPointersObject = CREATEOBJECT("Pointers")
RELEASE CLASSLIB POINTERS

lnpInfo = 0
lnError = NetUserGetInfo_A(@lcServer, @lcUserName, 20, @lnpInfo)

IF lnError > 0
WAIT WINDOW "ERROR #" + LTRIM(STR(lnError)) + " encountered."
RETURN .F.
ENDIF

*-- Release the array if it already exists
RELEASE &tcArrayName.

PUBLIC &tcArrayName
DIMENSION &tcArrayName[ 1, 5 ]


*-- UserName
&tcArrayName[ 1, 1] = loPointersObject.GetMemory( loPointersObject.Converter.DWORDStringToNumber( ;
loPointersObject.GetMemory(lnpInfo, 4)), "U")

*-- Full Name
&tcArrayName[ 1, 2] = loPointersObject.GetMemory( loPointersObject.Converter.DWORDStringToNumber( ;
loPointersObject.GetMemory(lnpInfo + 4, 4)), "U")

*-- Comment
&tcArrayName[ 1, 3] = loPointersObject.GetMemory( loPointersObject.Converter.DWORDStringToNumber( ;
loPointersObject.GetMemory(lnpInfo + 8, 4)), "U")

*-- Flags
&tcArrayName[ 1, 4] = loPointersObject.GetMemory( loPointersObject.Converter.DWORDStringToNumber( ;
loPointersObject.GetMemory(lnpInfo + 12, 4)), "U")

*-- User Id
&tcArrayName[ 1, 5] = loPointersObject.GetMemory( loPointersObject.Converter.DWORDStringToNumber( ;
loPointersObject.GetMemory(lnpInfo + 16, 4)), "A")

RETURN( .T. )
Juan L. Romero
gcandela@javanet.com
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform