Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как ограничить по времени "замирание" программы [D7, Win95/98, WinME, NT4, Win2k, WinXP]


СержК ©   (2006-01-26 08:49:00) 

Мастера подскажите.

Я имею несколько удаленных рабочих станций. На этих уд. станциях есть папки в общем доступе. В моей программе происходит опрос этих папок на предмет появления в них файлов.

Перед тем как обрабатывать содержимое этих удаленных папок я пытаюсь проверить - есть ли связь с этими станциями. Ничего лучше не придумал как проверить папку на существование:
DirectoryExists(\\IP_адрес\папка) - все работает нормально.

Но возникают ситуации когда: временно пропадает сеть(используем услуги сотовиков), на том конце выключен компьютер, ... ситуаций думаю может возникнуть много (точки разбросаны на расстоянии от 10 до 200 километров).

В такой ситуации при выполнении (когда что-то пропало):
DirectoryExists(\\IP_адрес\папка) - программа ЗАДУМЫВАЕТСЯ довольно надолго, что очень некрасиво выглядит.

Вопрос: Как ограничить по времени "замирание" программы?
Подскажите кто может. Очень нужно!!!


СержК   (2006-01-26 14:45:00) [1]

> azl
Попробовал использовать пример в этой ссылке - ничего не получилось. Разрываю сетку, а ping в программе проходит...???


azl   (2006-01-26 13:25:00) [2]

http://www.hostmake.ru/articles/delphi/delphi41.php


СержК   (2006-01-26 13:05:00) [3]

Народ неужели никто не знает как програмно сделать ping и проанализировать время эха?

Перекопал кучу сайтов, в лучшем случае натыкаюсь на диких размеров исходники в которых не могу разобраться...

Может есть что-то попроще?
Например  в Helpe нашел: procedure Ping(ABuffer: String = ''; SequenceID: word = 0); - не знаю то или нет?

Если да то как этим воспользоваться?

Пытяюсь сделать что-то вроде:  Ping('192.168.4.110', 0); - выдает Undeclared identifier: 'Ping'


sniknik   (2006-01-26 11:34:00) [4]

> В одном месте речь идет о VB и С++
т.е. разобратся на другом языке не можеш? ну добавь дополительно в поиск "ping программно delphi"...


СержК   (2006-01-26 11:17:00) [5]

Открыл я эту ссылку - НЕ МОГУ РАЗОБРАТЬСЯ. В одном месте речь идет о VB и С++, в другом реализация аналога PrintScreen...

А в Helpe: procedure Ping(ABuffer: String = ''; SequenceID: word = 0); - это не из той оперы?
Если да то как этим воспользоваться?

Пытяюсь сделать что-то вроде:  Ping('192.168.4.110', 0); - выдает Undeclared identifier: 'Ping'


sniknik   (2006-01-26 10:55:00) [6]

..... нет слов.
http://www.google.ru/search?hl=ru&q=ping+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=


СержК   (2006-01-26 10:22:00) [7]

Люди а может кто-нибудь подскажет по поводу: "ping программно"?


sniknik   (2006-01-26 09:09:00) [8]

лучше предварительно "пинг" сделать, он быстрее даст ответ, без таймаута, если комп в сети недоступен. а после этого уже путь проверять (тоже надо т.к. даже с рабочим пингом папка может быть недоступна по другим причинам)

p.s. сделай поиск по "ping программно" или чтото в этом роде ;).


СержК   (2006-01-26 09:03:00) [9]

Честно говоря с потоками никогда не работал.
Если можно пример - как его организовать, и как "прихлопнуть" при замирании программы допустим более 20 секунд.


TUser   (2006-01-26 08:57:00) [10]

Вытащить все в отдельный поток. Лучше - свой поток для каждой раб. станции.


Наверх

Титульная страница Поиск, карта сайта Написать письмо