Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2009, 09:11   #1
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
Вопрос Определение сетевых характеристик ПК

Доброго времени суток!

Как узнать с помощью VBA сетевые характеристики компьютера, а именно.
1. Имя компьютера.
2. Имя домена.
3. Логин пользователя.
4. Права пользователя.
5. IP адрес.
6. MAC адрес.
Юнлинг вне форума Ответить с цитированием
Старый 27.11.2009, 09:31   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Посмотрите вот это:
Цитата:
Для получения же списка всех доступных переменных среды Вашей операционной системы, можно воспользоваться нижеопубликованным макросом :
Код:
Private Sub CreateListEnvironVariables()
    Workbooks.Add xlWBATWorksheet '[2]
    
    Application.ScreenUpdating = False '[1]
    iCount% = 2:  iVariable$ = Environ(1)
    Do Until iVariable$ = ""
         iPosition% = InStr(iVariable$, "=")
         Cells(iCount%, 1) = Mid(iVariable$, 1, iPosition% - 1)
         Cells(iCount%, 2) = Mid(iVariable$, iPosition% + 1)
         
         iVariable$ = Environ(iCount%)
         iCount% = iCount% + 1
    Loop
    With Cells(1).Resize(, 2) 'Range("A1:B1")
         .Value = Array("Имя", "Значение")
         .Font.Bold = True
         .EntireColumn.AutoFit
    End With
    Application.ScreenUpdating = False
End Sub
Взято ЗДЕСЬ
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 27.11.2009, 09:52   #3
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Посмотрите вот ...

[/URL]
Оттуда я получу только 3 первые характеристики. Но для меня более важными являються остальные характеристики.
P.S. Ссылкой на сайт "http://msoffice.nm.ru/...." не могу воспользоваться сайт закрыт администратором компании.
Юнлинг вне форума Ответить с цитированием
Старый 27.11.2009, 12:38   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Посмотрите раздел Информация о компьютере здесь: http://www.vbnet.ru/faq/showall.asp

Список IP-адресов можно получить так:
Код:
Function Get_All_IP_Addresses() As Collection
    Set Get_All_IP_Addresses = New Collection
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

    For Each objAdapter In colAdapters
        If Not IsNull(objAdapter.IPAddress) Then
            For i = 0 To UBound(objAdapter.IPAddress)
                Get_All_IP_Addresses.Add objAdapter.IPAddress(i)
            Next
        End If
    Next
End Function

Sub test_Get_All_IP_Addresses()
    For Each i In Get_All_IP_Addresses
        Debug.Print i
    Next
End Sub
Аналогично- с MAC-адресами:
Код:
Function Get_All_MAC_Addresses() As Collection
    Set Get_All_MAC_Addresses = New Collection: On Error Resume Next
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

    For Each objAdapter In colAdapters
        If Not IsNull(objAdapter.IPAddress) Then
            For i = 0 To UBound(objAdapter.IPAddress)
                Get_All_MAC_Addresses.Add objAdapter.MacAddress(i), objAdapter.MacAddress(i)
            Next
        End If
    Next
End Function

Sub test_Get_All_MAC_Addresses()
    For Each i In Get_All_MAC_Addresses
        Debug.Print i
    Next
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 27.11.2009, 12:44   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Для получения более подробной информации изучайте WMI:

Цитата:
Классы WMI для работы с оборудованием можно разделить на девять больших категорий:

классы для работы с устройствами охлаждения (Win32_Fan, Win32_TemperatureProbe и т.п.)
для работы с устройствами ввода (Win32_Keyboard, Win32_PointingDevice)
с дисками (Win32_CDROMDrive, Win32_DiskDrive, Win32_FloppyDisk)
с материнской платой/контроллерами/портами (Win32_MotherboardDevice, Win32_BIOS, Win32_PhysicalMemory, Win32_Processor и т.п.)
с сетью (главный - Win32_NetworkAdapter)
с питанием (Win32_Battery, Win32_PowerManagementEvent)
с печатью (Win32_Printer, Win32_PrintJob)
с модемами (Win32_POTSModem)
с видеоподсистемой (Win32_DesktopMonitor, Win32_DisplayConfiguration, Win32_VideoController, Win32_VideoSettings).


Практически все эти классы предназначены для возможности только получения информации на чтения, без возможности внесения изменений. Исключение составляют только:

класс Win32_Fan - возможность программным образом устанавливать скорость вращения вентилятора (если такая возможность поддерживается материнской платой);

класс Win32_LogicalDisk - при помощи него можно менять имя тома (свойство Volume Name)

класс Win32_NetworkAdapterConfiguration. У этого класса - десятки методов, которые позволяют менять сетевые настройки для адаптера программным образом.

Для получения прав доступа из системы используйте Win32_Account, Win32_UserAccount
Цитата:
Ниже перечислены некоторые другие классы для работы с операционной системой:

Win32_Share - позволяет создавать, удалять и настраивать параметры общих каталогов на компьютере. Настройка разрешений производится при помощи класса Win32_LogicalShareSecuritySetting;

Win32_StartupCommand - возможность посмотреть, какие команды выполняются при запуске Windows с информацией о том, из какой ветви реестра производится их запуск;

Win32_Account, Win32_UserAccount, Win32_Group - возможность получить доступ к учетным записям - локальным, если обращение идет к обычному компьютеру, или доменным, если обращение идет к контроллеру домена. В отличие от ADSI, при помощи этих объектов вы не сможете вносить изменения учетные записи - они предназначены только для чтения информации и мониторинга;

Win32_BootConfiguration - возможность получить информацию о параметрах загрузки Windows (все доступно только на чтение).
EducatedFool вне форума Ответить с цитированием
Старый 27.11.2009, 13:34   #6
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

EducatedFool

Огромное спасибо особенно на ссылки. Я получил массу инфы, от которой пришел в восторг!!!! Часть вопросов над которыми ломал голову там нашел ответы
Юнлинг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исследование сетевых характеристик, исполнительный файл *.bat Катюшенька Помощь студентам 0 18.10.2009 13:14
Анализаторы сетевых протоколов TDrive Софт 2 04.09.2009 06:32
многопоточность в сетевых приложениях AlexandrY Работа с сетью в Delphi 9 13.07.2008 02:43
Иформация о сетевых подключениях SJMS Работа с сетью в Delphi 1 20.03.2007 09:50
скрытие сетевых соединений ch1pa Работа с сетью в Delphi 1 09.01.2007 13:45