MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]MOTHERBOARDSERIAL ou MAC - alternativa

    Compartilhe

    aep
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 26/04/2018

    [Resolvido]MOTHERBOARDSERIAL ou MAC - alternativa

    Mensagem  aep em 4/6/2018, 12:52

    Boa tarde amigos.
    Ve se você podem me ajudar
    Vi uma resposta para obter o número da placa (MOTHERBOARDSERIAL), tentei usar mas meu sistema é 64 bits e a fórmula está 32, tem alguma outra formula que puxa o número da placa.

    Tentei puxar o número do IP, mas não dá certo porque a máquina não fica em rede, dai tentei puxar o número do mac, mas nessa máquina não aparece nada, em outras que testo dá certo nessa não aparece nada, quando puxo pelo CMD o GETMAC consigo o numero do MAC, mas com a fórmula do access, não retorna nada, o campo fica em branco.
    os códigos que uso são esses:
    ________________________________________________________________________________
    Para MAC

    Código:
       Function GetMyMACAddress() As String
         Dim strComputer     As String
         Dim objWMIService   As Object
         Dim colItems        As Object
         Dim objItem         As Object
         Dim myMACAddress    As String
          strComputer = "."
             Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
             Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
             For Each objItem In colItems
             If Not IsNull(objItem.IPAddress) Then myMACAddress = objItem.MACAddress
             Exit For
         Next
             GetMyMACAddress = myMACAddress
       End Function




    ____________________________________________________________________________________
    Para IP

    Código:
       Public Function fncIP() As String
       Dim objWMIService As Object
       Dim strComputer As String
       Dim strSql As String
       Dim IPConfigSet
       Dim IPConfig
       Dim i
       strComputer = "." 'Acesso a máquina local
       Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
       strSql = "Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE"
       Set IPConfigSet = objWMIService.ExecQuery(strSql)
       For Each IPConfig In IPConfigSet
       If Not IsNull(IPConfig.IPAddress) Then
       For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
        If InStr(IPConfig.IPAddress(i), "::") = 0 Then fncIP = "IP da máquina " & Environ("computername") & ":  " & IPConfig.IPAddress(i)
       Next
       End If
       Next
       Set objWMIService = Nothing
       End Function


    ____________________________________________________________________________________

    Para motherboard 32 win

    Código:
       Public Function MOTHERBOARDSERIAL() As String
       'OBTEM O SERIAL NUMBER DA MOTHERBOARD
       '[Você precisa estar registrado e conectado para ver este link.]
       Dim objs As Object
       Dim obj As Object
       Dim WMI As Object
       Dim sAns As String

       Set WMI = GetObject("WinMgmts:")
       Set objs = WMI.InstancesOf("Win32_BaseBoard")
         For Each obj In objs
           sAns = sAns & obj.SerialNumber
          If sAns < objs.Count Then sAns = sAns & ","
         Next
       MOTHERBOARDSERIAL = sAns
       End Function



    ________________________________________________________________________________________

    Já tentei alterar as fórmula um monte de vezes e deu erro se puder me ajudar agradeço enormemente

    Se alguém souber de outra formula que puxa o motherboard serial ou o MAC me manda ai para testar

    aep
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 26/04/2018

    Re: [Resolvido]MOTHERBOARDSERIAL ou MAC - alternativa

    Mensagem  aep em 2/8/2018, 18:58

    Deu certo galera,

    se alguém interessar olha o código alternativo:

    Código:

    Option Compare Database

    Function functionMAC() As String
    Dim strResultado As String
    Dim objFSO As Object
    Dim objShell As Object
    Dim objTempFile
    Dim objTextFile

    On Error GoTo TrataErro

     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")


    objTempFile = objFSO.GetTempName


    objShell.Run "cmd /c GETMAC /NH /FO CSV >" & objTempFile, 0, True


    Set objTextFile = objFSO.OpenTextFile(objTempFile, 1)


    Do While objTextFile.AtEndOfStream <> True
      strResultado = strResultado & objTextFile.ReadLine
    Loop

    objTextFile.Close

    objFSO.DeleteFile (objTempFile)

    functionMAC = Mid$(strResultado, 2, 17)

     

    Sair:
      Set objShell = Nothing
      Set objFSO = Nothing
      Exit Function

    TrataErro:
      MsgBox "placa de rede Não foi identificada", vbInformation, "Aviso"
      Resume Sair
    End Function
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5388
    Registrado : 15/03/2013

    Re: [Resolvido]MOTHERBOARDSERIAL ou MAC - alternativa

    Mensagem  ahteixeira em 2/8/2018, 20:17

    Olá Roberto, que bom que resolveu!

    Obrigado pelo retorno, o fórum agradece.

    Abraço
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5388
    Registrado : 15/03/2013

    Re: [Resolvido]MOTHERBOARDSERIAL ou MAC - alternativa

    Mensagem  ahteixeira em 12/8/2018, 20:29

    Olá Roberto,

    Hoje tive oportunidade de testar com Windows X a 64 bit e Office 2016 64 bit o código para motherboard 32 win funcionou na perfeição.

    Na minha opinião, através desta função é a forma mais fácil e pratica de criar código de proteção para rodar numa máquina apenas.

    Abraço

      Data/hora atual: 19/8/2018, 00:32