2012-04-03 16 views
4

für eine Anwendung, die ich schreibe, muss ich einige Parameter von den Netzwerkadapter ändern, einschließlich Aktivieren/Deaktivieren von DHCP. Dazu verwende ich den „setipconfig“ Befehl aus diesem Quellcode:Delphi und WMI-Vernetzung

SetIPConfig

Es funktioniert sehr gut und das tut, was ich brauche, wenn der Netzwerkadapter angeschlossen ist. Das Problem ist, dass ich DHCP nicht aktivieren kann, wenn das LAN-Kabel nicht angeschlossen ist, , während ich andere Parameter wie IP oder Gateway korrekt ändern kann. Wenn ich versuche, DHCP zu aktivieren, während Netzwerkadapter getrennt wird, i die ole Fehler:

94 Path, file, or object not found

ich denke, es sollte auf jeden Fall arbeiten, auch wenn die Netzwerkkarte getrennt wird, weil ich dies tun kann richtig Gehen Sie in das Netzwerkkarten-/IP-Eigenschaftenfenster (mit XP).

IST HIER BESCHRIEBENEN GENAU MEIN PROBLEM:

http://www.neowin.net/forum/topic/515984-c-enabling-dhcp-on-nic-through-wmi/

wie der Kerl tat, habe ich versucht, direkt die Registerschlüssel zu ändern den DHCP aber, auch wenn auf den Netzwerkadapter Eigenschaften zu aktivieren, wird der Wert wurde korrekt geändert, die NIC verhielt sich so, als ob nichts geändert wurde, wie die Änderungen wurden nicht "übernommen".

hier ein anderes Thema:

www.winvistatips.com/wmi-config-fails-ethernet-cable-unplugged-t181330.html

Sie schlagen vor, dhcpsense zu deaktivieren einen Schlüssel in HKEY_LOCAL_MACHINE \ setzen System \ CurrentControlSet \ Services \ Tcpip \ Parameters namens DisableDHCPMediaSense (DWORD) und es auf 1.

Ok..it arbeitet jetzt einstellen, i die vollständige dHCP-Funktionalität nicht versucht, habe gerade ich, dass gesehen kann mit nic unplugged aber als jemand aktiviert werden schrieb, ich glaube nicht DHCP deaktivieren Sinn ist eine großartige Idee. Es bedeutet, dass der DHCP-Client den Verbindungsstatus nicht kennen kann, also denke ich , dass es Probleme bei der Erneuerung von Leases haben könnte, wenn die Verbindung abbricht, dann wieder hergestellt wird.

OS: XP SP3 Sprache: DelphiXE

Was ist los? Vielen Dank.

+0

die OS-Version verwenden? – RBA

+0

Vergessen Sie nicht, die Antwort zu akzeptieren, wenn Ihr Problem dadurch gelöst wurde (http://meta.stackexchange.com/a/5235/179541). Es wird die richtige Antwort für die zukünftigen Besucher mit dem gleichen Problem bestätigen. Vielen Dank! – TLama

Antwort

5

Dies scheint eine WMI-Einschränkung (oder Bug?), Wenn das Gerät getrennt ist (vor einiger Zeit sah ich ähnliche Berichte in einem anderen Foren als auch). Als Abhilfe und nur für diesen speziellen Fall (wenn das Gerät nicht angeschlossen ist) können Sie versuchen, die ohne Papiere DhcpNotifyConfigChange Funktion oder mit direkt auf die Windows-Registry

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Adapter-guid_goes_here} 
+0

Ok, es funktioniert! Sie müssen zuerst die Registrierungseinträge für Ihren Adapter ändern, dann DhcpNotifyConfigChange aufrufen, um die vorgenommenen Änderungen in die Registrierung zu übernehmen. Die gute Sache ist, dass es viel schneller scheint als mit WMI, schlecht ist, dass es eine undokumentierte Funktion ist. Es wäre besser, dass Microsoft WMI ordnungsgemäß funktioniert. –