Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 10

Как отобразить список компьютеров сети в ListBox-е?

05.07.2016, 06:56. Показов 1119. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, имеется код для консольного отображение списка компьютеров сети, а сейчас возникла потребность отобразить список компьютеров сети в ListBox , как это сделать? код для консольной ниже.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
using System;
using System.Collections;
using System.Runtime.InteropServices;
 
internal class Class1
{
    [DllImport("netapi32.dll", EntryPoint = "NetServerEnum")]
    public static extern NERR NetServerEnum([MarshalAs(UnmanagedType.LPWStr)] string ServerName, int Level, out IntPtr BufPtr, int PrefMaxLen, ref int EntriesRead, ref int TotalEntries, SV_101_TYPES ServerType, [MarshalAs(UnmanagedType.LPWStr)] string Domain, int ResumeHandle);
 
    [DllImport("netapi32.dll", EntryPoint = "NetApiBufferFree")]
    public static extern NERR NetApiBufferFree(IntPtr Buffer);
 
 
    [Flags]
    public enum SV_101_TYPES : uint
    {
        SV_TYPE_WORKSTATION = 0x00000001,
        SV_TYPE_SERVER = 0x00000002,
        SV_TYPE_SQLSERVER = 0x00000004,
        SV_TYPE_DOMAIN_CTRL = 0x00000008,
        SV_TYPE_DOMAIN_BAKCTRL = 0x00000010,
        SV_TYPE_TIME_SOURCE = 0x00000020,
        SV_TYPE_AFP = 0x00000040,
        SV_TYPE_NOVELL = 0x00000080,
        SV_TYPE_DOMAIN_MEMBER = 0x00000100,
        SV_TYPE_PRINTQ_SERVER = 0x00000200,
        SV_TYPE_DIALIN_SERVER = 0x00000400,
        SV_TYPE_XENIX_SERVER = 0x00000800,
        SV_TYPE_SERVER_UNIX = SV_TYPE_XENIX_SERVER,
        SV_TYPE_NT = 0x00001000,
        SV_TYPE_WFW = 0x00002000,
        SV_TYPE_SERVER_MFPN = 0x00004000,
        SV_TYPE_SERVER_NT = 0x00008000,
        SV_TYPE_POTENTIAL_BROWSER = 0x00010000,
        SV_TYPE_BACKUP_BROWSER = 0x00020000,
        SV_TYPE_MASTER_BROWSER = 0x00040000,
        SV_TYPE_DOMAIN_MASTER = 0x00080000,
        SV_TYPE_SERVER_OSF = 0x00100000,
        SV_TYPE_SERVER_VMS = 0x00200000,
        SV_TYPE_WINDOWS = 0x00400000,
        SV_TYPE_DFS = 0x00800000,
        SV_TYPE_CLUSTER_NT = 0x01000000,
        SV_TYPE_TERMINALSERVER = 0x02000000,
        SV_TYPE_CLUSTER_VS_NT = 0x04000000,
        SV_TYPE_DCE = 0x10000000,
        SV_TYPE_ALTERNATE_XPORT = 0x20000000,
        SV_TYPE_LOCAL_LIST_ONLY = 0x40000000,
        SV_TYPE_DOMAIN_ENUM = 0x80000000,
        SV_TYPE_ALL = 0xFFFFFFFF,
    }
 
    [StructLayout(LayoutKind.Sequential)]
    public struct SERVER_INFO_101
    {
        [MarshalAs(UnmanagedType.U4)]
        public uint sv101_platform_id;
        [MarshalAs(UnmanagedType.LPWStr)]
        public string sv101_name;
        [MarshalAs(UnmanagedType.U4)]
        public uint sv101_version_major;
        [MarshalAs(UnmanagedType.U4)]
        public uint sv101_version_minor;
        [MarshalAs(UnmanagedType.U4)]
        public uint sv101_type;
        [MarshalAs(UnmanagedType.LPWStr)]
        public string sv101_comment;
    }
 
 
    public enum PLATFORM_ID : uint
    {
        PLATFORM_ID_DOS = 300,
        PLATFORM_ID_OS2 = 400,
        PLATFORM_ID_NT = 500,
        PLATFORM_ID_OSF = 600,
        PLATFORM_ID_VMS = 700,
    }
 
 
    public enum NERR
    {
        NERR_Success = 0,
        ERROR_ACCESS_DENIED = 5,
        ERROR_NOT_ENOUGH_MEMORY = 8,
        ERROR_BAD_NETPATH = 53,
        ERROR_NETWORK_BUSY = 54,
        ERROR_INVALID_PARAMETER = 87,
        ERROR_INVALID_LEVEL = 124,
        ERROR_MORE_DATA = 234,
        ERROR_EXTENDED_ERROR = 1208,
        ERROR_NO_NETWORK = 1222,
        ERROR_INVALID_HANDLE_STATE = 1609,
        ERROR_NO_BROWSER_SERVERS_FOUND = 6118,
    }
 
    public static ArrayList GetServerList(SV_101_TYPES type)
    {
        SERVER_INFO_101 si;
        IntPtr pInfo = IntPtr.Zero;
        int etriesread = 0;
        int totalentries = 0;
        ArrayList srvs = new ArrayList();
 
        try
        {
            NERR err = NetServerEnum(null, 101, out pInfo, -1, ref etriesread, ref totalentries, type, null, 0);
            if ((err == NERR.NERR_Success || err == NERR.ERROR_MORE_DATA) && pInfo != IntPtr.Zero)
            {
                int ptr = pInfo.ToInt32();
                for (int i = 0; i < etriesread; i++)
                {
                    si = (SERVER_INFO_101)Marshal.PtrToStructure(new IntPtr(ptr), typeof(SERVER_INFO_101));
                    srvs.Add(si.sv101_name);
 
                    ptr += Marshal.SizeOf(si);
                }
            }
        }
        catch (Exception)
        {
        }
        finally
        {
            if (pInfo != IntPtr.Zero)
            {
                NetApiBufferFree(pInfo);
            }
        }
        return (srvs);
    }
 
    [STAThread]
    static void Main()
    {
        Console.WriteLine("{0} WORKSTATION", new string('=', 10));
        ArrayList list = GetServerList(SV_101_TYPES.SV_TYPE_WORKSTATION);
        foreach (string name in list)
        {
            Console.WriteLine(name);
        }
        Console.WriteLine("{0} UNIX", new string('=', 10));
        list = GetServerList(SV_101_TYPES.SV_TYPE_SERVER_UNIX);
        foreach (string name in list)
        {
            Console.WriteLine(name);
        }
 
 
 
        Console.ReadLine();
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2016, 06:56
Ответы с готовыми решениями:

Как получить список компьютеров в сети?
С помощью какой API-шной ф-ции можно получить список имен компьютеров в сетке? Или можно это сделать каким-нибудь другим способом? ...

Как получить список компьютеров в сети?
Доброе время суток. Как получить список компьютеров в сети используя только классы .NET без всякиз API.

Как вытянуть список компьютеров из локальной сети?
Люди добрые помогите пож..) (VB5 Pro) Мне тут надо каким-то образом вытащить в массив список компьютеров в сети... сеть работает по...

2
 Аватар для Cuguyc
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
05.07.2016, 13:21
Ну по сути-то всё тоже самое, только массив данных выводить не через Console.WriteLine(name); а привязать сам массив к listbox'у на форме в проекте winForms или WPF к примеру. Это при условии, что код рабочий
Если требуется постоянно видеть вновь подключенные и отключенные компы, то сделайте цикл, который будет переформировывать коллекцию каждые 5 секунд к примеру. Это самый простой выход.
0
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 10
06.07.2016, 08:17  [ТС]
Цитата Сообщение от Cuguyc Посмотреть сообщение
Ну по сути-то всё тоже самое, только массив данных выводить не через Console.WriteLine(name); а привязать сам массив к listbox'у на форме в проекте winForms или WPF к примеру. Это при условии, что код рабочий
Если требуется постоянно видеть вновь подключенные и отключенные компы, то сделайте цикл, который будет переформировывать коллекцию каждые 5 секунд к примеру. Это самый простой выход.
Нужно делать это при нажатии на кнопку, то есть пользователь жмет и у него в ListBox-е отображается список серверов.

Добавлено через 29 минут
Цитата Сообщение от BulletinOTP Посмотреть сообщение
Нужно делать это при нажатии на кнопку, то есть пользователь жмет и у него в ListBox-е отображается список серверов.
список компьютеров точнее

Добавлено через 28 секунд
НЕ АКТУАЛЬНО
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2016, 08:17
Помогаю со студенческими работами здесь

Список компьютеров в сети
Помогите. Необходимо написать скрипт на bash, который выводит список компьютеров в сети, и тип их операционной системы. Сеть локальная,...

Список компьютеров в локальной сети
Подскажите пожалуйста, как узнать список компьютеров в сети.

Получить список компьютеров в сети
Доброго времени суток!!! Как получить список компьютеров в сети и произвести листинг открытых директорий на них?

Получить список компьютеров в локальной сети
Здравствуйте!Ребят срочно помогите мне нужно в С# создать программу которая может соединить компьютеры по локальной сети, тоесть если они...

Shbrowseforfolder. пустой список компьютеров в сети
Добрый день. Суть проблемы: использую функцию shbrowseforfolder для выбора компьютера в сети. На некоторых компьютерах возникает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru