|
Comanche
|
|
Нужен не тормозной способ определения коннекта к Сети01.02.2011, 18:14. Показов 1632. Ответов 12
Метки нет (Все метки)
Сказать, что тема избитая - не сказать ничего
)Есть три способа: 1. Через АПИ RASEnum.... - приемлемо только для dial-up 2. Через АПИ GetConnectedState (или что-то в этом роде) - скажет, что вы в Сети, даже если вы просто в локалке 3. Через АПИ-функции из wininet.dll (попытка открыть любой корректный URL) - тупит по-страшному. Короче говоря, ни одного нормального способа ( Последний - самый надёжный в плане результата: если пинговать Yahoo, то т.к. эта служба никогда не 'падает' (по кр. мере верим в это), то мы точно (99.9%) будем знать - в Сети мы или нет. Только вот если в программе делать такую проверочку из АПИ-таймера, скажем раз в 5-10 секунд, то если ничего в программе в этот момент не делать, то можно жить, - а вот если момент проверки коннекта попадёт на открытие popup-меню, то у меня даже Win2000 пишет, что 'Программа не отвечает'!!! ну а менюха 'замораживается'... есть и другие похожие бяки.Выносить в отдельный поток? (так руки и не дошли до этого; на VBNET.RU, кстати, все почему-то очень ругали использование CreateThread под VB...) Выносить в отдельный EXE-шник (на худой конец)? который бы жил сам по себе, просто результат проверки через SendMessage периодически пулял бы в главное окно. Ещё как? Главное - чтоб не 'тупило'. |
|
| 01.02.2011, 18:14 | |
|
Ответы с готовыми решениями:
12
Как заходить по локальной сети с мтс коннекта? Способ определения языка текущего пользователя. Универсальный способ определения расположения пользовательских папок |
|
Messir
|
|
| 02.02.2011, 01:09 | |
|
пингами попробуй
|
|
|
Comanche
|
|
| 02.02.2011, 10:58 | |
|
Ты имеешь в виду 'ping http://xxxxx.xxx.xx > D:output.txt',
а потом смотреть, чё в txt-шнике? |
|
|
Comanche
|
||||||
| 02.02.2011, 12:53 | ||||||
|
В общем, сделал через внешний EXE-шник. Если кому интересно - вот код проекта этого EXE-шника:
|
||||||
|
Comanche
|
|
| 02.02.2011, 12:58 | |
|
Кстати, в процедуре TimerProc, после SendMessage и WriteStatusText, не помешает добавить вызов 'RedrawWindow CLng(params(0)), .....', чтобы обновить статус-бар.
|
|
|
Comanche
|
|
| 02.02.2011, 13:18 | |
|
Однако, выявился неприятный эффект: текст, установленный в бэйсиковском статус-баре через SendMessage, исчезает при WM_PAINT
( т.е. если форму основного проекта чуть-чуть двинуть, то в панели слово 'Он-лайн' (ну или 'Офф-лайн') пропадёт до следующего цикла таймера... придётся искать решение этой бяки.
|
|
|
Comanche
|
|
| 02.02.2011, 14:34 | |
|
В общем, плюнул и переделал всё через DDE. Получилось в два раза компактнее, и никаких проблем с перерисовкой статус-бара: основной проект выступает в роли DDE-сервера и ловит строковые сообщения от DDE-клиента, который проверяет в таймере коннект к Сети и через LinkExecute отправляет серверу либо '0', либо '1'. А уж основной проект - получив эту строку от клиента - прописывает соотв. текст в панель собственного статус-бара без всяких SendMessage.
Единственное, что непонятно, - это то, что строка доходит от клиента к серверу в исковерканном виде: после нолика (или единички) идут 2-3 каких-то нечитаемых символа, и приходится их отсекать... |
|
|
0 / 0 / 1
Регистрация: 09.01.2011
Сообщений: 47
|
|
| 02.02.2011, 15:10 | |
|
Доброго всем времени суток !
Есть еще один вариант - через Winsock. P.S. 'После очередной депрессии , космонавт Джонсон решил повеситься, но тут наступила невесомоть ...'
0
|
|
|
Comanche
|
|
| 02.02.2011, 15:37 | |
|
Согласен. А что через него отправлять? HTTP GET? - тогда в буфер винсока полезет вся страница Yahoo, и это сожрёт столько же времени, что и InternetOpenURL из wininet.dll... я не сильный знаток HTTP, посему вопрос: что ещё вместо 'GET' можно послать по HTTP, чтобы быстро убедиться в доступности URL'а (т.е. в наличии коннекта)?!
|
|
|
Messir
|
|
| 02.02.2011, 15:42 | |
|
Ну, когда я говорил про пинги, я вообще-то имел в виду IcmpCreateFile/IcmpSendEcho/IcmpCloseHandle...
|
|
|
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
|
|
| 02.02.2011, 16:49 | |
|
2Comanche: HEAD
0
|
|
|
Comanche
|
|
| 02.02.2011, 17:06 | |
|
СПАСИБО ВСЕМ!!!
Буду пробовать. |
|
|
Comanche
|
|
| 04.02.2011, 16:56 | |
|
2Messir:
остановился на твоём варианте: выигрыш в скорости - в 3 с лишним раза (если сравнивать с InternetOpenUrl). Ещё раз BIG THANX! |
|
| 04.02.2011, 16:56 | |
|
Помогаю со студенческими работами здесь
13
Быстрый способ определения цвета пиксела координатам x, y
Подскажите третий способ определения числа ребер графа Предложить иной способ определения того, попадает ли заданная точка в ромб способ определения текущего режима втавки/замены для редактирования текстового поля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|