![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ограничить по времени "замирание" программы [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]Вытащить все в отдельный поток. Лучше - свой поток для каждой раб. станции.