NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Используя netsh интерфейс набора интерфейса Usage [называют =] IfName [[администратор =] ENABLED|DISABLED [подключение =] CONNECTED|DISCONNECTED [newname =] NewName]
Попробуйте включая все во внешних скобках: netsh соединяют интерфейсом с определенным именем интерфейса = "thename" admin=disabled connect=DISCONNECTED newname = "thename"
См. также эту страницу MS KB: http://support.microsoft.com/kb/262265/ Вы могли следовать за любым из их предложений. Для отключения адаптера необходимо будет определить способ сослаться на устройство. Если не будет нескольких адаптеров с тем же именем на компьютере, Вы могли возможно уйти Описания для интерфейса (или идентификатор PCI работает хорошо). После этого, использование devcon (disable|enable). Devcon является дополнительным консольным интерфейсом для Диспетчера устройств.
До сих пор я нашел следующее решение Python:
>>> import wmi; c=wmi.WMI()
>>> o=c.query("select * from Win32_NetworkAdapter where NetConnectionID='wifi'")[0]
>>> o.EnableDevice(1)
(-2147217407,)
который переводится, AFAIU, к универсальной ошибке WMI 0x80041001. Могли быть полномочия.
Я, может казаться, не нахожу основного API для управления интерфейсами на MSDN кроме API RAS, но я не думаю, что они относятся к некоммутируемым соединениям. Поскольку Вы предлагаете себя, netsh мог бы быть опцией, предположительно, он также имеет программный интерфейс: http://msdn.microsoft.com/en-us/library/ms708353 (По сравнению с 85) .aspx
Если Вы хотите быть чистым Python, можно, возможно, открыть ряд каналов для общения с процессом netsh.
это - VB.Net
Dim objectQuery As New ObjectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId IS NOT NULL")
Dim searcher As New ManagementObjectSearcher(scope, objectQuery)
Dim os As ManagementObject
Dim moColl As ManagementObjectCollection = searcher.Get()
Dim _list As String = ""
For Each os In moColl
Console.WriteLine(os("NetConnectionId"))
Next os
Это получит все интерфейсы на Вас компьютер. Затем можно сделать netsh для отключения его.
netsh соединяют интерфейсом с интерфейсом DISABLED набора
devcon инструмент может управлять NIC, но не интерфейсом непосредственно. Это - версия командной строки апплета Диспетчера устройств.
devcon disable (id or portion of name)
devcon enable (id or portion of name)
Вы, возможно, должны использовать WMI. Это может служить хорошей начальной точкой: http://msdn.microsoft.com/en-us/library/aa394595.aspx