MAC : récupération du UserName (réseau) dans Visual Basic
1 réponse
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <abordier@discussions.microsoft.com> a écrit dans le message de news:
C03F09F1-560F-4711-99E2-B4DC6325D5EE@microsoft.com...
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.
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.