Seite 2 von 3

Verfasst: 22.03.2007 12:05
von funk.munich
Hi,

das hier ist natürlich keine PB Lösung, jedoch mit dem Skript könntest
Du auch die IP über RunProgramm anpassen können.
Temporär folgende vbs Datei erstellen (natürlich noch anpassen):

Code: Alles auswählen

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
 
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
Läuft unter W98 -> W2K3.

Vielleicht hilfts, wenn nicht einfach ignorieren.

Gruß,
Daniel

Verfasst: 22.03.2007 14:15
von PureBasic4.0
@funk.munich

danke, ich werde es mal ausprobieren.

Verfasst: 22.03.2007 18:34
von Thalius
Mit Netsh könntest dus machen ( std windows commandline ):

Code: Alles auswählen

; Shows Settings:
netsh interface ip show config

Code: Alles auswählen

; Set ip to 192.168.0.30
; Set netmask to 255.255.255.0
; Set gateway to 192.168.0.1
; Last Flag activates the Interface with new settings
netsh interface ip set address name="Local Area Connection" static 192.168.0.30 255.255.255.0 192.168.0.1 1

Code: Alles auswählen

; Export Interface Settings to a file
netsh -c interface dump > c:\myinterface1.txt

Code: Alles auswählen

; Import Settings from exported file
; Ideal to fastly switch between conbfigurations.
netsh -f c:\myinterface1.txt 

Code: Alles auswählen

; Set Interface to DHCP
netsh interface ip set address "Local Area Connection" dhcp

Code: Alles auswählen

; Set WINS & DNS Server
netsh interface ip set wins "Local Area Connection" static 192.168.0.200
netsh interface ip set dns "Local Area Connection" static 192.168.0.200

Code: Alles auswählen

; Set DNS /WINS to dhcp
netsh interface ip set dns "Local Area Connection" dhcp
EDIT: Hab Deinen Post nur überflogen... :oops: aber denke ich ist trotzdem hilfreich das hier mal festzuhalten - für alle die mit der Suchfunktion umgehen können jedenfalls ... <)

Alternativ kannst du auch WinAPI verwenden.

Hoffe das war hilfreich, Thalius

Verfasst: 22.03.2007 19:36
von PureBasic4.0
@Thalius

Danke, aber wie du aus meinem ersten Posting herauslesen kannst, möchte ich netsh möglichst umgehen. Was gibt es für API-Möglichkeiten und wie funktionieren diese? (Bitte entschuldigt diese Frage, aber ich habe Vista und da funzen .hlp-Hilfedateien nicht mehr. Muss die win32.hlp irgendwann mal in .chm konvertieren)

Verfasst: 22.03.2007 19:43
von ts-soft
PureBasic4.0 hat geschrieben:(Bitte entschuldigt diese Frage, aber ich habe Vista und da funzen .hlp-Hilfedateien nicht mehr. Muss die win32.hlp irgendwann mal in .chm konvertieren)
http://www.pcwelt.de/news/software/vist ... index.html

Ansonsten könnteste den Code von funk.munich mit dem ScriptControl nutzen

Verfasst: 24.03.2007 18:35
von PureBasic4.0
@ts-soft:
Danke! HLPs funktionieren jetzt wieder

Verfasst: 25.03.2007 18:20
von PureBasic4.0
funk.munich hat geschrieben:Hi,

das hier ist natürlich keine PB Lösung, jedoch mit dem Skript könntest
Du auch die IP über RunProgramm anpassen können.
Temporär folgende vbs Datei erstellen (natürlich noch anpassen):

Code: Alles auswählen

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
 
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
Läuft unter W98 -> W2K3.

Vielleicht hilfts, wenn nicht einfach ignorieren.

Gruß,
Daniel
Kann man damit auch DHCP Adressen übernehmen? Und wie kann man damit ein Netzwerkgerät auswählen (ich möchte nur eines verändern)

Verfasst: 31.03.2007 14:18
von PureBasic4.0
Nanu? Habt ihr alle keine Ahnung von dem Script?

Verfasst: 02.04.2007 10:19
von bobobo
Wie heisst denn das Netzwerkgerät? Heisst es überall gleich? Hat es unterschiedliche Namen? Sind die eventuell vom User selber benennbar?


mM zum Script : Wer den scriptinghost an lässt ist selber Schuld.
Für mich wäre das per se keine Lösung.

Verfasst: 02.04.2007 15:31
von PureBasic4.0
@bobobo: Geh mal auf Start --> Systemsteuerung --> Netzwerkverbindungen. Da drin stehen alle Netzwerkgeräte, die am Computer angeschlossen (bzw. eingebaut) sind