Hallo,
die Abfrage über die Registry hat sich als nicht optimal herausgestellt, da jeder Rechner eine andere NetworkCard-ID hat.
Zumindest habe ich es wie folgt realisiert:
' Servicename = ObjShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\1\ServiceName")
' strIPAddress = objShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\" & Servicename & "\Parameters\Tcpip\DhcpIPAddress")
Dies funktioniert leider nur, wenn alle Rechner die gleiche ID ("1") haben.
Daher ein andere Ansatz über das Erzeugen einer Textdatei;
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c ipconfig > D:\Programme\SMARTEAM\ipadresse.txt",0,true
Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\Programme\SMARTEAM\ipadresse.txt")
Do While Not ts.AtEndOfStream
strLine = ts.ReadLine
If Instr(1, strLine, "IP-Ad") <> 0 Then
strIPAddress = Trim(Split(strLine, ":")(1))
Exit Do
End If
Loop
ts.Close: Set ts = Nothing
objShell.Run "cmd /c del D:\Programme\SMARTEAM\ipadresse.txt",0,false
Set objShell = Nothing
strNetworkAddress = left(strIPAddress,6)
.... (Class B-Netzwerk - die ersten sechs Ziffern sind entscheidend)
Ergebnis: Die Textdatei wird problemlos erzeugt, SmarTeam hat Probleme mit dem VB-Code zum "Extrahieren" der eigentlichen IP-Adresse. Fehlermeldung: File "...\Split.bs" cannot be opened.
Umschreiben in "strIPAddress = Trim(left(strLine, ":")(1))" führt zu einem "Type mismatch". jetzt bin ich überfragt.
Wie muss die Zeile
strIPAddress ...
richtigerweise für SmarTeam lauten?
------------------
Grüße,
Christian Willmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP