Private Const MAX_COMPUTERNAME_LENGTH As Long = 15&
Private Declare Function GetComputerNameW Lib "kernel32" (ByVal lpBuffer As Long, lpnSize As Long) As Long
Private Declare Function SetComputerNameW Lib "kernel32" (ByVal lpComputerName As Long) As Long
Public Function GetComputerName() As String
Dim Buffer As String
Buffer = VBA.String$(MAX_COMPUTERNAME_LENGTH, ChrW$(0))
Call GetComputerNameW(StrPtr(Buffer), Len(Buffer))
GetComputerName = VBA.Left$(Buffer, VBA.InStr(Buffer, ChrW$(0)) - 1)
End Function
Public Function SetComputerName(ByVal NewName As String) As Boolean
If Len(NewName) > MAX_COMPUTERNAME_LENGTH Then NewName = VBA.Left$(NewName, MAX_COMPUTERNAME_LENGTH)
SetComputerName = Not (SetComputerNameW(StrPtr(NewName)) = 0)
' Les modifications sont effectuées après un redémarrage de l'ordinateur.
End Function