Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Достучатся до железа


Автор: SLeN 10.3.2007, 11:56
Возможно ли используя C# добратся до железа ? А именно сетевых адаптеров и получить возможность отключать/включать их.  

Автор: mr.DUDA 10.3.2007, 13:40
Нужно отключить именно адаптер, или сетевое соединение ?

Советую почитать в мсдн раздел "Platform SDK: Windows Management Instrumentation", псевдо-классы WMI юзаются в C# через классы из System.Management. Примеры использования я неоднократно приводил раньше, искать по ключевому слову ManagementObjectSearcher

Автор: SLeN 10.3.2007, 15:43
Цитата

Нужно отключить именно адаптер, или сетевое соединение ?


Думаю подойдут оба варианта

Спасибо за совет!

Автор: SLeN 11.3.2007, 12:29
 smile немогу найти подходящий метод.

P.S

и вероятно не найду =(

Цитата

Нам часто задают вопрос "Как включать и отключать сетевые адаптеры при помощи сценария?" Что ж, мы не будем томить вас в ожидании. Мы скажем вам прямо сейчас - никак. По крайне мере, пока вы не начнете работать в Windows Vista™. В класс Win32_NetworkAdapter Windows Vista были добавлены два новых метода: включение и отключение.


http://www.microsoft.com/rus/technet/technetmag/issues/2006/11/HeyScriptingGuy/default.aspx

Автор: mr.DUDA 11.3.2007, 14:03
Хм, поиск дал только следующее:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__networking.asp

Теоретически, можно было бы по имени найти нужный драйвер железа (Win32_SystemDriver) и выполнить StopService, но на практике всегда возвращает код ошибки 4

Код
using System;
using System.Management;

class Program
{
    static void Main()
    {
        string name = "RTL8023xp";

        ManagementObjectSearcher search = new ManagementObjectSearcher(
            "SELECT * FROM Win32_SystemDriver WHERE Name = '" + name + "'");
        foreach (ManagementObject driver in search.Get())
        {
            object result = driver.InvokeMethod("StopService", new object[0]);
        }
    }
}


Добавлено @ 14:04 
Цитата(SLeN @  11.3.2007,  11:29 Найти цитируемый пост)
 В класс Win32_NetworkAdapter Windows Vista были добавлены два новых метода: включение и отключение.

Точно, есть такое.

Автор: Tror 12.3.2007, 14:38
Вроде как http://mcpmag.com/columns/article.asp?EditorialsID=619 есть то что тебе поможет.
Единственное что это метод не подходит для нт4 и 95/98

Автор: SLeN 13.3.2007, 12:51
Tror,  Спасибо.
Будем пробывать.

Автор: SLeN 14.3.2007, 15:10
К сожелению я в VBscript = Null
И не могу заставить его работать под русским винь ХР 
 :(

Автор: SergL5 21.5.2008, 17:30
Подскажите, пожалуйста, кто знает, как программно в С# получить MAC адрес сетевого адаптера?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)