--- Soumis par Dev Ashish---
Retrouver le domaine NT de l'usager.
Pour retrouver l'heure du serveur NT, utiliser la fonction API NetWkStaUserGetInfo.
Note: NetWkStaUserGetInfo, de même que quelques autres fonction de l'API, n'existe que sous l'environnement Windows NT. Ce code ne fonctionnera PAS sous Windows 95 or 98.
'************ Code Start ************* Private Type WKSTA_USER_INFO_1 wkui1_username As Long 'nom de l'usager _ couramment "loggé" _ sur cette station. wkui1_logon_domain As Long 'le nom du domaine _ gérant le compte de l'usager _ actuellement "loggé" wkui1_oth_domains As Long 'liste des autres mangers de _ domaines locaux (LAN) accessibles _ par la station. wkui1_logon_server As Long 'nom de la station _ qui a authentifié le serveur End Type Private Declare Function apiWkStationUser Lib "Netapi32" _ Alias "NetWkstaUserGetInfo" _ (ByVal reserved As Long, _ ByVal Level As Long, _ ByVal bufptr As Long) _ As Long Private Declare Function apiStrLenFromPtr Lib "kernel32" _ Alias "lstrlenW" _ (ByVal lpString As Long) _ As Long Private Declare Sub sapiCopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" _ (hpvDest As Any, _ hpvSource As Any, _ ByVal cbCopy As Long) Public Function fUserNTDomain() As String '******************************************* 'Name: fUserNTDomain [NT SEULEMENT] (Function) 'Purpose: Find NT Domain name of current user 'Author: Dev Ashish 'Date: Thursday, January 14, 1999 'Called by: Any 'Calls: NetWkstaUserGetInfo, RTLMoveMemory 'Inputs: None 'Returns: NT Domain Name of Current User '******************************************* On Error GoTo ErrHandler Dim lngRet As Long Dim lngPtr As Long Dim tNTInfo As WKSTA_USER_INFO_1 lngRet = apiWkStationUser(0&, 1&, lngPtr) If lngRet = 0 Then Call sapiCopyMemory(tNTInfo, ByVal lngPtr, LenB(tNTInfo)) If Not lngPtr = 0 Then With tNTInfo fUserNTDomain = fStringFromPtr(.wkui1_logon_domain) End With End If End If ExitHere: Exit Function ErrHandler: fUserNTDomain = vbNullString Resume ExitHere End Function Private Function fStringFromPtr(lngPtr As Long) As String Dim lngLen As Long Dim abytStr() As Byte lngLen = apiStrLenFromPtr(lngPtr) * 2 If lngLen > 0 Then ReDim abytStr(0 To lngLen - 1) Call sapiCopyMemory(abytStr(0), ByVal lngPtr, lngLen) fStringFromPtr = abytStr() End If End Function '************ Code End *************