vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Seriennummer: für Lizenzierung? 
Autor: That
Datum: 13.03.04 20:57

Ist die MAC-Adresse nicht eindeutig? Falls du dafür den Code suchst:
Option Explicit
 
' alle benötigten API-Deklarationen
Private Declare Function Netbios Lib "netapi32.dll" _
  (pncb As NCB) As Byte
 
Private Declare Sub CopyMemory Lib "kernel32" _
  Alias "RtlMoveMemory" ( _
  hpvDest As Any, _
  ByVal hpvSource As Long, _
  ByVal cbCopy As Long)
 
Private Declare Function GetProcessHeap Lib "kernel32" () As Long
 
Private Declare Function HeapAlloc Lib "kernel32" ( _
  ByVal hHeap As Long, _
  ByVal dwFlags As Long, _
  ByVal dwBytes As Long) As Long
 
Private Declare Function HeapFree Lib "kernel32" ( _
  ByVal hHeap As Long, _
  ByVal dwFlags As Long, _
  lpMem As Any) As Long
 
Private Const NCBASTAT = &H33
Private Const NCBNAMSZ = 16
Private Const NCBRESET = &H32
Private Const HEAP_ZERO_MEMORY = &H8
Private Const HEAP_GENERATE_EXCEPTIONS = &H4
 
Private Type 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 ' Reserved, must be 0
  ncb_event As Long
End Type
 
Private 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
 
Private Type NAME_BUFFER
  name  As String * NCBNAMSZ
  name_num As Integer
  name_flags As Integer
End Type
 
Private Type ASTAT
  adapt As ADAPTER_STATUS
  NameBuff(30) As NAME_BUFFER
End Type
 
' MAC-Adresse der Netzwerk-Karte ermitteln
Public Function MAC_Address() As String
  Dim strucNCB As NCB
  Dim strucASTAT As ASTAT
  Dim bResult As Byte
  Dim lResult As Long
  Dim sAddress As String
  Dim sBuffer As String
  Dim i As Integer
 
  With strucNCB
    ' Struktur füllen
    .ncb_command = NCBRESET
    bResult = Netbios(strucNCB)
    .ncb_command = NCBASTAT
    .ncb_lana_num = 0
    .ncb_callname = "*               "
    .ncb_length = Len(strucASTAT)
 
    ' Heap-Speicher reservieren
    lResult = HeapAlloc(GetProcessHeap(), _
      HEAP_GENERATE_EXCEPTIONS Or _
      HEAP_ZERO_MEMORY, .ncb_length)
 
    If lResult <> 0 Then
      .ncb_buffer = lResult
      bResult = Netbios(strucNCB)
      CopyMemory strucASTAT, .ncb_buffer, Len(strucASTAT)
 
      ' MAC-Adresse
      For i = 0 To 5
        sBuffer = Hex$(strucASTAT.adapt.adapter_address(i))
        sAddress = sAddress & IIf(Len(sBuffer) = 2, _
          sBuffer, "0" & sBuffer) & " "
      Next i
 
      ' Heap-Speicher wieder freigeben
      HeapFree GetProcessHeap(), 0, lResult
    End If
 
    If Len(sAddress) Then
      ' MAC-Adresse existiert
      MAC_Address = Trim$(sAddress)
    Else
      ' keine MAC-Adresse vorhanden
      MAC_Address = "nicht verfügbar"
    End If
  End With
End Function
 
Private Sub Command1_Click()
MsgBox MAC_Address
End Sub

____________________________________

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Seriennummer: für Lizenzierung?1.011furious11.03.04 13:49
Re: Seriennummer: für Lizenzierung?625ModeratorDieter11.03.04 14:27
Re: Seriennummer: für Lizenzierung?673furious11.03.04 14:29
Re: Seriennummer: für Lizenzierung?588ModeratorDieter11.03.04 14:31
Re: Seriennummer: für Lizenzierung?538furious11.03.04 14:33
Re: Seriennummer: für Lizenzierung?580E711.03.04 16:03
Re: Seriennummer: für Lizenzierung?518furious11.03.04 16:21
Re: Seriennummer: für Lizenzierung?477redilS12.03.04 19:10
Re: Seriennummer: für Lizenzierung?610That13.03.04 20:57
Re: Seriennummer: für Lizenzierung?464furious13.03.04 21:39
Re: Seriennummer: für Lizenzierung?621That13.03.04 22:12
Re: Seriennummer: für Lizenzierung?633E714.03.04 19:32

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel