2 / 2 / 2
Регистрация: 02.06.2017
Сообщений: 63
|
|
1 | |
MS SQL ListView - ping строки, выбираемой из списка/отображение списка онлайн машин в сети29.09.2017, 22:59. Показов 1467. Ответов 8
Доброй ночи, форумчане!
Возник насущный вопрос... Может быть, уже и обсуждался, но, по неведомым мне причинам, или я не понял, или не нашел возможный ответ. Суть: MSSQL БД, WinForms программа. Есть ListView, 6 колонок(в целом не суть важно), отображает необходимую информацию. В одной из колонок четко прописан локальный, в другой - внешний IP-адрес компьютера в сети. На ListView находится ContextmenuStrip, при нажатии на строку ListView я бы с помощью ПКМ выбирал пинг до локального или внешнего ip адреса (в разных обработчика, естественно). Вероятно, при обработке события нужен SelectedIndexChange, возможно я не прав. 1. Рассмотрю любые идеи, или, если кто сталкивался, реализации данной идеи. 2. На будущее имеется плане реализации в ListView мониторинга доступности компьютеров онлайн - что-то типа ico/png разных цветов рядом с соответствующей строкой, показывающей, отвечает ли компьютер в настоящий момент. Идеи, реализация? Можно в ЛС, но желательно тут, дабы оставить ответы будущему поколению форумчан Буду рад любой помощи и советам/комментариям. Желательно с исходниками, или помощи на пальцах/для тупых. Спасибо!
0
|
29.09.2017, 22:59 | |
Ответы с готовыми решениями:
8
Клиент-сервер: отображение списка онлайн-клиентов Не отображаются элементы списка ListView, полученного у другого списка Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка Сканирование компьютеров на присутствие в сети онлайн. #threads #c++11 #ping #icmp |
30.09.2017, 23:02 | 2 |
Ну идей, ятд, тут можно 100500 найти.
Я бы предложил (есди все компьютеры работают на ОС Windows) использовать такую штуку, как WCF Discovery/WCF Announcement (обнаружение/объявление). Очень удобная штука, по правде говоря.
0
|
2 / 2 / 2
Регистрация: 02.06.2017
Сообщений: 63
|
|
01.10.2017, 22:02 [ТС] | 3 |
Вечер добрый.
Все компьютеры на Винде, да. Мне по факту не нужно их обнаружение, т.к. ip и имя компа в базе под MSSQL. Именно пингование по адресу из списка Listview. Ну, и иконка статуса в отдельном столбце...
0
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
02.10.2017, 13:37 | 4 |
не понятна суть вопроса - Вы не знаете как организовать пинг на шарпе, или не знаете как выдернуть значение в выбранной строке?
И к тому же учтите, что на некоторый компах может стоять firewall, который будет отсекать ICMP запрос даже в рамках локальной сети (не говоря уже о том, что на внешний адрес, да еще и если он выставленный прямо на винде - я бы сам отсекал все внешние раздражители дабы не попасть на флуд по пингу)
0
|
2 / 2 / 2
Регистрация: 02.06.2017
Сообщений: 63
|
|
02.10.2017, 13:50 [ТС] | 5 |
Конкретно в данном случае - как взять значение IP из клацнутой строки в listview и отпинговать адрес.
Какого то глобального флуда по пингу не подразумевается - в данном случае вопрос стоит доступности компьютера и получения его ответа. Опять же, это может быть не компьютер, допустим, а КПК с фиксированным IP адресом, пингующийся через Wi-Fi точку.
0
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
02.10.2017, 14:45 | 6 |
Сообщение было отмечено GuardianCoder как решение
Решение
Тогда начинайте отталкиваться не от того, что у Вас есть ListView (его может и не быть, и точно должно не быть на этапе проектирования системы).
Отталкивайтесь от того, что у Вас есть набор строк (а в них есть колонки). Т.е. есть набор сущностей, в данном случае - это компы, из этого следует что есть класс комп со своими полями, и есть какой-то класс "набор компов", а в классе набора есть какой-то лист/таблица компов, в которую мы можем добавлять/удалять компы. И грубо говоря есть свой личный сериализатор/десериализатор который по запросу из сиквела вернет нам сущность "набор компов". Из этого набора (зная Id компа) - уже достаточно тривиально достать айпишник данного компа. А Id нам отдаст уже тот самый злосчатсный ListView своим свойством SelectedRow (может по-другому называется, уже не помню что там в листе можно выцепить). Но это так бы сделал я, а как сделано сейчас - мне пока не понятно, что и как у Вас тянется.
1
|
2 / 2 / 2
Регистрация: 02.06.2017
Сообщений: 63
|
||||||
26.12.2017, 16:37 [ТС] | 7 | |||||
Кстати, всё же хочу поделиться на будущее своей наработкой. Хулигану отдельное спасибо за толчок в нужном направлении!
Мне банально проще оказалось перевести из ListView в datagridview и оттуда таскать данные. Любые комментарии и пинки приветствуются. Шарп только осваиваю, потому, за красоту и адекватность кода ручаться и вовсе не могу.
0
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
27.12.2017, 09:48 | 8 |
1. Очень много пунктов "Другая ошибка" - смысл тогда перечислять их, можно было всё каскадно перечислить и проваливаться без break каждый раз, ну да ладно, до этого дойдете.
2. Не нужно каждый раз подписываться на событие в цикле, достаточно 1 раз подписаться на этапе загрузки формы (имею в виду на событие пинга). 3. Выдергивать значение из грида - тоже не самое удачное решение, лучше таскать данные из объекта, что прибинден к гриду - тогда можно было бы таскать точно так же и из LisView. Вообще не понятно смысла в этой строке. Лишний раз заставлять форму заморозиться - не самое удачное решение. Тут бы почитать об асинхронности, советую Албахари - там об этом (ИМХО) наилучшим образом разжевано, сравнивал с Рихтером и Троелсеном, но это субъективно.
0
|
2 / 2 / 2
Регистрация: 02.06.2017
Сообщений: 63
|
|
27.12.2017, 09:59 [ТС] | 9 |
И тем не менее - спасибо!
Буду копать дальше по мере возможности и времени)
0
|
27.12.2017, 09:59 | |
27.12.2017, 09:59 | |
Помогаю со студенческими работами здесь
9
Batch ping из списка адресов Написать код программы, выполняющей растяжку списка и вставку, удаление из списка и сжатие списка Даны два списка. Каждый элемент первого списка ассоциативно связан соответствующим элементом второго списка Существует ли возможность удаления списка ПО с администрируемых N машин политикой? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |