![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как проверить - не занят ли ком порт ?с одного окна
ah © (2002-05-04 15:54:00)вроде получается , т.е если в одном же окне открыл компорт, в ней же могу посмотреть- покеазывает что открыт, запускаю копию той же проги, та не показывает что порт открыт, и при попытке с нее открыть возникает ошибка , как быть ?
af (2002-05-08 18:27:00) [1]ну а , что предположим мне нужно сделать, я хочу программу написать , чтобы на любом компе можно было запустить , т.е. если порт занят модемом, чтобы программа сказала , что порт уже занят, выберите другой ..
Aleks1 (2002-05-08 18:12:00) [2]Ааа... вот как! Не зная компонента ответить нереально. Можно лишь предлагать варианты. Ну типа, может она открывает порт только на некое "необходимое" время, например для посылки данных, а потом молча закрывает до следующего случая?
af (2002-05-08 18:06:00) [3]есть такая функция у компонента - проверка открытости порта, так вот когда я открываю порт и там же проверяю, показывает открыт порт, а если с другого окна , т.е копии проверяю открыт или нет, говорит что нет...а хотя первая программа порт открыл
Aleks1 (2002-05-08 04:20:00) [4]" но если открою еще такую же прогу , и попытаюсь проверить тот же порт, она покажет, что порт закрыт..."
А как же про
"ah © (05.05.02 06:52)
насчет запрета запуска копии я согласен"?
С чем тогда согласен?
Программа проверяет порт открывая его. Первый экземпляр программы может его открыть и открывает. Второй экземпляр той же программы пытается открыть уже открытый порт и не может, о чем и сообщает.
af (2002-05-07 18:25:00) [5]это же не глюк программы- для компонента есть функция comport.connected, если false то закрыт порт, и наборот, все это работает , если с одной проги порт открыт , но если открою еще такую же прогу , и попытаюсь проверить тот же порт, она покажет, что порт закрыт...
Aleks1 (2002-05-07 02:52:00) [6]> ah или af
Давай отделим мух о котлет.
Если имеется "глюк" от некоей программы, то нужно лечить ее, либо "ампутировать ее". Во всех прочих случаях "Открытие" порта - и есть ответ на вопрос, занят ли он или нет!
mifi (2002-05-06 19:44:00) [7]открывай порт как файл если хандл файла ноль значит порт уже открыт если не ноль значит не открыт только потом не забывай его закрывать.
af (2002-05-06 18:38:00) [8]просто такой момент- программа на дельфи, используещая компонент comportlibrary,( если порт был открыт до этого другой программой )зависает порт, и невозможно к нему обратиться, но не перегружая в то же время можно обратиться к тому же порту через другую программу, например compic - это программа для прошивки Пиков и никакой ошибки не возникает. Т.е что я хочу - моя программа должна проверить компорт, если он свободен работать с ней , вопрос как раз в этом , как проверить ?
Aleks1 (2002-05-06 03:24:00) [9]Как быть? Либо переключиться на другой порт (если он есть), либо сообщить пользователю, что он "не прав", пытаясь запустить более одной программы, работающей с одним и тем же "компортом".
ah (2002-05-05 06:52:00) [10]насчет запрета запуска копии я согласен, но если предположим порт уже занят например модемом, в этом случае как быть ?
Aleks1 (2002-05-05 02:35:00) [11]Единственно грамотный ответ, если я правильно понял вопрос, это "Запрет на запуск более, чем одного, экземпляра программы", что, кстати, вполне естественно для таковой, если ей нужен "компорт"!
Варианты решения в FAQ точно были.
mifi (2002-05-04 23:36:00) [12]если открываешь порт через файл попробуй дать файлу не монопольный отребут(точно не помню как называется)может получится
Doom (2002-05-04 21:04:00) [13]так и быть потому что так и должно быть