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