Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MAC : récupération du UserName (réseau) dans Visual Basic

1 réponse
Avatar
abordier
Bonjour, je cherche à récupérer le nom (login) d'un User dans une procédure
Visual Basic.
L'instruction : user = Environ("UserName") qui fonctionne très bien sur PC,
me retourne une erreur d'exécution '5' (Argument ou appel de procédure
incorrect) lorsqu'elle est exécutée sur un MAC.

Avez-vous une idée, SVP ?

merci de votre aide.

1 réponse

Avatar
MichDenis
Aucune idée à savoir si l'utilisation des API est possible sur Mac

dans le haut d'un module standard, copie ce qui suit....
ce qui suit a été publié ici par Frédéric Sigonneau.
Pllusieurs fonctions pour obtenir la même chose ...


Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" _
(ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long


Sub test()
MsgBox OSUserName
MsgBox fGetUserName
MsgBox fOSUserName
MsgBox FindUserName
End Sub


Function OSUserName() As String
'Dave Peterson, mpep
Dim Buffer As String * 256
Dim BuffLen As Long
BuffLen = 256
If GetUserName(Buffer, BuffLen) Then _
OSUserName = Left(Buffer, BuffLen - 1)
End Function

Function fGetUserName() As String
'posté par Med Bouchenafa, mpfe
Const lpnLength As Integer = 255
Dim iRet As Integer
Dim lpName, lpUserName As String

lpUserName = Space$(lpnLength + 1)

iRet = WNetGetUser(lpName, lpUserName, lpnLength)
If iRet = 0 Then
lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
Else
lpUserName = ""
End If

fGetUserName = lpUserName

End Function

Function fOSUserName() As String
' Trevor Shuttleworth, mpep
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String

strUserName = String$(254, 0)
lngLen = 255
lngX = GetUserName(strUserName, lngLen)
If lngX <> 0 Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = ""
End If
End Function

Public Function FindUserName() As String
' Andrew, mpep
Dim strName As String
strName = Space$(512)
GetUserName strName, Len(strName)
FindUserName = Trim$(strName)
End Function
'====================





"abordier" a écrit dans le message de news:

Bonjour, je cherche à récupérer le nom (login) d'un User dans une procédure
Visual Basic.
L'instruction : user = Environ("UserName") qui fonctionne très bien sur PC,
me retourne une erreur d'exécution '5' (Argument ou appel de procédure
incorrect) lorsqu'elle est exécutée sur un MAC.

Avez-vous une idée, SVP ?

merci de votre aide.