Сеть Delphi и WMI - PullRequest
       21

Сеть Delphi и WMI

4 голосов
/ 03 апреля 2012

для приложения, которое я пишу, мне нужно изменить некоторые параметры сетевого адаптера, включая включение / отключение DHCP.Для этой цели я использую команду «SetIpConfig» из этого исходного кода:

SetIPConfig

Он работает очень хорошо и делает то, что мне нужно, если сетевой адаптерподключен.Проблема в том, что я не могу включить DHCP, если кабель локальной сети отключен, в то время как я могу правильно изменить другие параметры, такие как IP или шлюз.Когда я пытаюсь включить dhcp, когда сетевой адаптер отключен, я получаю ole ошибку:

94 Путь, файл или объект не найден

Я думаю, что это должноработать в любом случае, даже если сетевая карта отключена, потому что я могу сделать это правильно, зайдя в окно свойств сетевой карты / ip (используя XP).

ЗДЕСЬ ОПИСАНО ТОЛЬКО МОЯ ПРОБЛЕМА:

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

как и тот парень, я пытался напрямую изменить ключи реестра, чтобы активировать DHCP, но даже если в свойствах сетевого адаптера значение было изменено правильно, сетевой адаптер вел себя так, как будто ничего не изменилосьКак будто изменения не были «применены» к нему.

Здесь другая тема, связанная с:

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

Они предлагают отключить установку dhcpsenseключ в HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Tcpip \ Параметры с именем DisableDHCPMediaSense (DWORD) и установка его в 1.

Ok..это работает сейчас, я не пробовал полную функциональность dhcp, просто яЯ видел, что его можно включить, если ник отключен, но, как кто-то написал, я не думаю, что отключение dhcp sense - отличная идея.Это означает, что клиент dhcp не может знать состояние соединения, поэтому я думаю, что у него могут возникнуть проблемы с продлением аренды, если соединение разорвано, а затем устанавливается снова.

ОС: XP SP3 Язык: DelphiXE

Что не так?Большое спасибо.

1 Ответ

5 голосов
/ 04 апреля 2012

Это кажется ограничением WMI (или ошибкой?), Когда устройство отключено (некоторое время назад я видел подобные сообщения и на других форумах). В качестве обходного пути и только для этого конкретного случая (когда устройство не подключено) вы можете попробовать использовать недокументированную функцию DhcpNotifyConfigChange или напрямую использовать реестр Windows

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