Habe ein kleines Programm noch mal geschrieben das einfach zwischen DHCP und Static wechseln soll das Problem ist wenn ich den Radiobutton "DHCP" auf True haben passiert nichts habe das in 2 kleine Funktionen geschrieben.
Einmal der Button:
int Index1;
if (radioButton1.Checked)
{
//if (dhcpExists() == false)
//{
DHCPon();
//}
}
else if (radioButton2.Checked)
{
einmal der DHCPon befehl
private void DHCPon()
{
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
try
{
ManagementBaseObject newIP = objMO.GetMethodParameters("EnableDHCP");
}
catch (Exception)
{
throw;
}
}
}
Nimm den Debugger ( [Artikel] Debugger: Wie verwende ich den von Visual Studio? ) um festzustellen, warum er nicht an den Punkt springt.
Zum Thema Setzen: Du rufst zwar im ManagementBaseObject einen Wert ab; Du setzt aber nichts.
Du verwendest schließlich nur eine Get-Nethode.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
netsh interface ip set address "LAN-Verbindung" dhcp
netsh interface ip set address "LAN-Verbindung" static 192.168.0.10 255.255.255.0 192.168.0.1 1
ist schneller und einfacher als über WMI
Grüße
**:::
vbprogger du hast schon in mehreren Threads das netsh interface angesprochen, jedoch habe ich damit noch nie gearbeitet hättest du dann ein paar links für mich weil die MSDNA seite ist da eher unüberischtlich
Kuehter, kannst du bitte Punkte und Kommas setzen bei deinen Beiträgen. Wenn das jemand liest ist man 5 Jahre beschäftigt.
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
da ist nicht viel zu lesen. netsh ist ein Zeileinkommandoprogramm, du kannst gern in ein cmd-Fenster die Parameter anschauen:
netsh interface
netsh interface ip
netsh interface ip set
Grüße
**:::
Habe es jetzt wie folgt versucht.
private void DHCP_click()
{
Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo("netsh", "interface ip set adress\"Local Area Connection\" dhcp");
p.StartInfo = psi;
p.Start();
}
leider findet er den Befehl nicht.
interface ip set adress"Local Area Connection" dhcp
Es gab schon mal ein Topic von dir wo ich gezeigt habe, wie man solche Sachen in cmd-Fenster ausführen läßt. Bitte wende es an.
Grüße
**:::
Habe das jetzt auch so geschrieben.
Problem ist nur, dass bringt auch nichts weiter der Fehler,
Befehlt nicht gefunden
ist immer noch da der Code sieht jetzt wie folgt aus:
private void DHCP_click()
{
Process.Start("netsh", "interface ip set address\" Local Area Connection\"dhcp");
}
Das habe ich nicht gemeint, aber egal.
Bitte guck nach, ob netsh.exe auf dem Rechner existiert. Hat der ausführende User auch Adminrecht? Heißt der Adapter wirklich Local Area Connection? Hast du schon manuell versucht?
Grüße
**:::
Doch, hier Win32 NetworkAdapterClass
**:::
Mit ein wenig Eigeninitiative (Suchbegriffe C# WMI DHCP bei Google) ganz einfach....