Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Хук Com winApi [Delphi, Windows]


reqyzik   (19.03.13 13:36

Кратко говоря, стараюсь реализовать следующую задачу: программа должна отлавливать сообщения, посылаемые ком портом в стороннее приложение и немного корректировать их, далее получать ответ от приложения, и тоже, корректируя их отправлять обратно на порт.

Проблема в следующем: приложение стороннее работает напрямую с портом, без сторонних драйверов, а значит написание драйвера не вариант, (или ошибаюсь?). номер ком-порта определен заранее - 4-й и изменить я этого для программы не смогу, получается не могу стать приложением работающим с 4-м портом, а ты программу связать с собой как с 6-м например. (хоть может и в этом не прав).

Я думаю, единственный выход, это ловить какие - то апишные функции в самой программе, и действовать на значения их аргументов. (правильно мыслю?)

Много похожих тем есть , ул и форумы обысканы, но готового решения так и не нашёл, лишь в основном мутную воду, у меня месяц есть на реализацию, помогите кто чем может)
заранее благодарен)


Rouse_ ©   (19.03.13 14:04[1]

Перехватываешь CreateFile с целью отловить хэндл открытого СОМ порта (определишь это по имени), после лови ReadFile с запомненым хэндлом и меняй как вздумается.


reqyzik   (19.03.13 14:12[2]

разве ком порт так просто даст возможность получить данные, он же только одну прогу допускает одновременно?


Вариант   (19.03.13 14:47[3]


> reqyzik   (19.03.13 14:12) [2]

Ты подменил CreateFile....

Другой вариант - есть такая штука, как виртуальные порты.. например eltima software virtual serial port.


Вариант   (19.03.13 15:00[4]

И да, а при чем тут Corba?? Не всякий COM == RS232 LOL

PS:
Кстати, кроме виртуальных портов, могут быть и просто свободные физические порты. Если просто для отладки, разобраться там с протоколом например, то вполне можно и их задействовать...


reqyzik   (19.03.13 16:59[5]

"Вариант", можешь подробней?)


Вариант   (20.03.13 06:23[6]

Если про eltima software virtual serial port - это программное обеспечение, которое позволяет создать уже связанные пары COM портов. Один из этих портов ты отдаешь нужной программе, а другой слушаешь сам или пишешь в него сам. Устройство же подключено к реальному порту, который ты тоже пишешь и читаешь своей программой. Есть вроде аналогичный софт и других производителей.
Имея свободные физические порты (свободную пару) на компе ты можешь обойтись и без виртуальных портов. Единственно, что ради подмены данных занимать постоянно два лишних реальных порта  не стоит на мой взгляд. Это делается только в момент отладки и изучения протоколов обмена.  Хотя если они(порты) не задействованы, то как не тиражируемый вариант для себя вполне нормально.


reqyzik   (20.03.13 06:29[7]

"Вариант" спасибо) а есть исходники для изучения на подобе этой проги?


reqyzik   (20.03.13 06:29[8]

"Вариант" спасибо) а есть исходники для изучения на подобе этой проги?


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо