Подскажите по macaddress

X-Gen
Дата: 20.11.2009 14:21:23
Нужно получить в переменную физический адресс
использую:

Public Sub SpecificationsNet()
Dim strComputer As String
Dim objWMIService As Object, colBIOS As Object, objBIOS As Object

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
For Each objBIOS In colBIOS
MsgBox "Name adapter: " & objBIOS.Name
MsgBox "MAC-adress: " & objBIOS.MACAddress
Next
Set objWMIService = Nothing

End Sub

здесь выдает адреса многих устройств в сообщение, а нужен один macaddress который
прописываеся в таблице процессов SQL типа 0019DBBEA696 в переменную.
Кто знает помогите!
Guest33
Дата: 20.11.2009 16:23:44
Public Sub SpecificationsNet()
Dim strComputer As String
Dim objWMIService As Object, colBIOS As Object, objBIOS As Object

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
For Each objBIOS In colBIOS
If InStr(1, objBIOS.Name, "Ethernet") > 0 Then
  Debug.Print "Name adapter: " & objBIOS.Name
  Debug.Print "MAC-adress: " & Replace(objBIOS.MACAddress, ":", "")
End If
Next
Set objWMIService = Nothing

End Sub
?
X-Gen
Дата: 20.11.2009 21:03:07
Guest33,

Ура! кажется то что надо. Завтра опробую в деле.
Большой рахмат!
Guest33
Дата: 20.11.2009 22:28:51
автор
Ура! кажется то что надо

Да нет, попробовал на разных машинах - ключевое слово Ethernet в названии не всегда соответствует MAC адресу, "который прописывается" в sysprocesses. Иногда это - Net Controller (если сетевая на борту) и т.п. Возможно, кто нибдь подскажет, какое из 36 пропертей Вашего objBIOS надо использовать для идентификации. Я не смог догадаться.
- А чем не устраивает HostName из той же табл. sysprocesses?
- В том же топике, откуда Вы взяли пример с WMI описан способ опр. MAC адреса через API.
X-Gen
Дата: 22.11.2009 09:05:18
Guest33,


Пока буду использовать этот вариант, проверял на 4 машинах все работает.
Табл. sysprocesses не использую, использую другую в базе от лицензионного приложения в
которой прописывается mac когда пользователь входит под своим именем.
Вариант через API показался мне слишком сложным, у меня с ним не вышло.
Вообще перепробовал множество вариантов, работает только Ваш.
Вообщем спасибо еще раз!