raph007
Messages postés22Date d'inscriptionlundi 12 mai 2003StatutMembreDernière intervention20 mai 2005
-
24 févr. 2004 à 14:07
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
25 févr. 2004 à 10:45
Salut a tous,
j'ai un serveur novell avec netware 5 et dans une macro excell je récupére le lgion name mais je trouve cela pas joli
est ce que vous connaissez un moyen de récupérer le Full name??
merci d'avance
raph007
Messages postés22Date d'inscriptionlundi 12 mai 2003StatutMembreDernière intervention20 mai 2005 25 févr. 2004 à 08:10
oui g essayer avec cette api mais curieusement cela fonctionne bien sur ma station (windows xp) mais par-contre quand j'ouvre le fichier excel sous w98 ben la rien ne ce passe
mais merci quand meme a+ raph
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 25 févr. 2004 à 10:45
Dans mes applis, j'utilise ce qui suit. J'ai été obligé de faire comme ça car je bosse en environnement sécurisé Win 98 et Win XP et les autres méthodes ne me renvoyaient que l'utilisateur habituel du poste et pas le nom de connexion.
La fonction Login me renvoie donc le vrai nom de login en cherchant d'abord le 1er lecteur réseau.
Maintenant, je n'ai pas testé en VBA.
Function Login() As String
Dim lpBuffer As String
Dim currDrive As String
Dim Slash_Position As Integer
lpBuffer = GetDriveString()
Do Until lpBuffer = vbNullChar
currDrive = StripNulls(lpBuffer)
If GetDriveType(currDrive) = DRIVE_REMOTE Then
Login = GetNetResourceUserName(Left$(currDrive, 2))
Slash_Position = InStr(Login, "")
If Slash_Position > 0 Then
Login = Right$(Login, Len(Login) - Slash_Position)
End If
Exit Do
End If
Loop
End Function
Function GetDriveString() As String
'Retourne tous les lecteurs logiques séparés par un Null
Dim sBuffer As String
sBuffer = Space$(26 * 4)
If GetLogicalDriveStrings(Len(sBuffer), sBuffer) <> 0 Then
GetDriveString = Trim$(sBuffer)
End If
End Function
' --------------------------------------------------------------------------------
' Fonction retournant la liste des lecteurs logiques
' --------------------------------------------------------------------------------
Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _
"GetLogicalDriveStringsA" ( _
ByVal nBufferLength As Long, ByVal _
lpBuffer As String) As Long
' --------------------------------------------------------------------------------
' Fonction retournant le type d'un lecteur logique
' --------------------------------------------------------------------------------
Declare Function GetDriveType _
Lib "kernel32" Alias "GetDriveTypeA" _
( _
ByVal lpRootPathName As String _
) As Long
' --------------------------------------------------------------------------------
' Fonction retournant le login de l'utilisateur en cours
' --------------------------------------------------------------------------------
Declare Function WNetGetUser _
Lib "mpr.dll" Alias "WNetGetUserA" _
( _
ByVal lpName As String, _
ByVal lpUserName As String, _
lpnLength As Long _
) As Long
Function GetNetResourceUserName(sShare As String) As String
'Retourne le Full name si l'utilisateur est logué
'Sinon retourne chaîne vide
Dim buff As String
Dim nSize As Long
buff = Space$(MAX_PATH)
nSize = Len(buff)
If WNetGetUser(sShare, buff, nSize) = 0 Then
GetNetResourceUserName = Split(buff, Chr$(0))(0)
Exit Function