1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| '-> déclaration de l'API "GetUserName" contenue dans la DLL "advapi32"
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
'
'
Private Sub Form_Load()
' variable de résultat
Dim strUserName As String
' on crée le buffer, c'est à dire qu'on pré-rempli le résultat. c'est l'API qui veut çà.
' chr n'est pas une variable mais une fonction retournant le caractère du code ascii en param.
' ici on rempli donc strUserName avec 100 fois le caractère NULL
strUserName = String(100, Chr$(0))
' utilisation de l'API avec la variable pré-remplie et sa taille
GetUserName strUserName, 100
' l'API nous retourne le nom du User sur les 100 carac. les carac inutiles sont donc ceux
' que nous avions mis par buffer, donc des Chr(0)
' nb : $ pour string
' on récupère donc la gauche du résultat jusqu'au premier caractère null trouvé (qui ne peut pas
' faire partie du nom réel)
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
' on affiche le résultat dans une alerte
MsgBox "Hello '" & strUserName & "'"
Unload Me
End Sub |
Partager