GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Número de série ou identificador da placa de rede
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
-star Rating Vote!  Login/Cadastrar 
Iniciante

Figura de  ediuberto
postado
Gostaria de saber se alguem pode me dizer como pegar o Número de Série ou identificador da placa de rede pois depois de ler uma postagem do Juninho o OsmarJr mencionou este assunto...

De já agradeço....
 
Postagens: 3 | Localização: Acailandia,Maranhao,Brazi | Registrado: 22 January 2004Reply With QuoteReport This Post
Gerente

Figura de  OsmarJr
postado Hide Post
Option Compare Database
Option Explicit

Const NCBASTAT As Long = &H33
Const NCBNAMSZ As Long = 16
Const HEAP_ZERO_MEMORY As Long = &H8
Const HEAP_GENERATE_EXCEPTIONS As Long = &H4
Const NCBRESET As Long = &H32

Type NET_CONTROL_BLOCK 'NCB
    ncb_command As Byte
    ncb_retcode As Byte
    ncb_lsn As Byte
    ncb_num As Byte
    ncb_buffer As Long
    ncb_length As Integer
    ncb_callname As String * NCBNAMSZ
    ncb_name As String * NCBNAMSZ
    ncb_rto As Byte
    ncb_sto As Byte
    ncb_post As Long
    ncb_lana_num As Byte
    ncb_cmd_cplt As Byte
    ncb_reserve(9) As Byte ' Reservado, deve ser 0
    ncb_event As Long
End Type

Type ADAPTER_STATUS
    adapter_address(5) As Byte
    rev_major As Byte
    reserved0 As Byte
    adapter_type As Byte
    rev_minor As Byte
    duration As Integer
    frmr_recv As Integer
    frmr_xmit As Integer
    iframe_recv_err As Integer
    xmit_aborts As Integer
    xmit_success As Long
    recv_success As Long
    iframe_xmit_err As Integer
    recv_buff_unavail As Integer
    t1_timeouts As Integer
    ti_timeouts As Integer
    Reserved1 As Long
    free_ncbs As Integer
    max_cfg_ncbs As Integer
    max_ncbs As Integer
    xmit_buf_unavail As Integer
    max_dgram_size As Integer
    pending_sess As Integer
    max_cfg_sess As Integer
    max_sess As Integer
    max_sess_pkt_size As Integer
    name_count As Integer
End Type

Type NAME_BUFFER
    name As String * NCBNAMSZ
    name_num As Integer
    name_flags As Integer
End Type

Type ASTAT
    adapt As ADAPTER_STATUS
    NameBuff(30) As NAME_BUFFER
End Type

Public Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, ByVal _
hpvSource As Long, ByVal _
cbCopy As Long)

Public Declare Function GetProcessHeap Lib "kernel32" () As Long

Public Declare Function HeapAlloc Lib "kernel32" _
    (ByVal hHeap As Long, ByVal dwFlags As Long, _
    ByVal dwBytes As Long) As Long

Public Declare Function HeapFree Lib "kernel32" _
    (ByVal hHeap As Long, _
    ByVal dwFlags As Long, _
    lpMem As Any) As Long


Public Function GetMACAddress() As String

'Retorna a string jah formatada do MAC Address da placa de rede.

Dim tmp As String
Dim pASTAT As Long
Dim NCB As NET_CONTROL_BLOCK
Dim AST As ASTAT

    NCB.ncb_command = NCBRESET
    Call Netbios(NCB)

    NCB.ncb_callname = "* "
    NCB.ncb_command = NCBASTAT
    NCB.ncb_lana_num = 0
    NCB.ncb_length = Len(AST)

    pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS _
        Or HEAP_ZERO_MEMORY, NCB.ncb_length)

    If pASTAT = 0 Then
        Debug.Print "falha alocando memoria!"
        Exit Function
    End If

    NCB.ncb_buffer = pASTAT
    Call Netbios(NCB)

    CopyMemory AST, NCB.ncb_buffer, Len(AST)

    tmp = Format$(Hex(AST.adapt.adapter_address(0)), "00") & " " & _
    Format$(Hex(AST.adapt.adapter_address(1)), "00") & " " & _
    Format$(Hex(AST.adapt.adapter_address(2)), "00") & " " & _
    Format$(Hex(AST.adapt.adapter_address(3)), "00") & " " & _
    Format$(Hex(AST.adapt.adapter_address(4)), "00") & " " & _
    Format$(Hex(AST.adapt.adapter_address(5)), "00")

    HeapFree GetProcessHeap(), 0, pASTAT

    GetMACAddress = tmp

End Function



é só fazer Var = GetMACAddress e Var recebe o identificador da placa (em Hexa).

========================================================
Não esqueça de dizer se funcionou...

Documente seu código. Use boas práticas de nomes. Padronize.
TristeVOCÊ NÃO É ETERNO. Triste
Mostrando a língua Mas as besteiras que você fizer são duradouras. Mostrando a língua


 
Postagens: 3354 | Localização: Curitiba - PR | Registrado: 08 March 2001Reply With QuoteReport This Post
  Powered by Social Strata  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Número de série ou identificador da placa de rede

©