buongiorno a tutti, ho la necessità, tramite un piccolo programmino di switchare automaticamente la configurazione della scheda di rete, una con dhcp e l'altra con indirizzo statico che prendo da un file di testo del tipo:
pc1;192.168.1.100
pc2;192.168.1.101
ecc..
ho creato questo programmino (il mio primo programma in vb net quindi scusatemi per ogni eventuale sbaglio). L'ho creato con VB.Net 2010 Express sotto windows 7 e funziona perfettamente. Lo stesso programma sotto windows xp sp3 con .net framework 4 funziona ma male, nel senso che per attivare la configurazione sulla scheda di rete devo cliccare più volte sui button del programma.
il pezzo di codice che riguarda questa funzione è:
codice:
Imports System.Net
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim comandoip = "netsh interface ip set address ""Connessione alla rete locale (LAN)"" dhcp"
Shell(comandoip, vbHide)
Dim comandodns = "netsh interface ip set dns ""Connessione alla rete locale (LAN)"" dhcp"
Shell(comandodns, vbHide)
Label2.Hide()
Label3.Hide()
Label1.Show()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim hostName As String = System.Net.Dns.GetHostName()
Dim lettura As String = ""
Dim f As New IO.StreamReader("indirizzi.txt")
' peek ritorna il prossimo carattere dello stream. se -1 sono alla fine
While f.Peek <> -1
lettura = f.ReadLine
If lettura.Contains(hostName) Then
Dim lunghezzaHost As Integer = Len(hostName)
Dim recuperaIP As String = lettura.Substring(lunghezzaHost + 1)
Dim comandoip = "netsh interface ip set address ""Connessione alla rete locale (LAN)"" static " & recuperaIP & " " & "255.255.255.0 10.49.28.253 1"
Shell(comandoip, vbHide)
Label3.Text = "Identificato con indirizzo IP: " & recuperaIP
End If
End While
f.Close()
Dim comandodns = "netsh interface ip add dns ""Connessione alla rete locale (LAN)"" 212.216.112.112"
Shell(comandodns, vbHide)
Dim comandodns2 = "netsh interface ip add dns ""Connessione alla rete locale (LAN)"" 10.49.28.246 index=2"
Shell(comandodns2, vbHide)
Label1.Hide()
Label3.Show()
Label2.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class
qualcuno potrebbe aiutarmi? grazie in anticipo