Конференция "Corba" » Хук Com winApi [Delphi, Windows]
 
  • reqyzik (19.03.13 13:36) [0]
    Кратко говоря, стараюсь реализовать следующую задачу: программа должна отлавливать сообщения, посылаемые ком портом в стороннее приложение и немного корректировать их, далее получать ответ от приложения, и тоже, корректируя их отправлять обратно на порт.

    Проблема в следующем: приложение стороннее работает напрямую с портом, без сторонних драйверов, а значит написание драйвера не вариант, (или ошибаюсь?). номер ком-порта определен заранее - 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]
    "Вариант" спасибо) а есть исходники для изучения на подобе этой проги?
 
Конференция "Corba" » Хук Com winApi [Delphi, Windows]
Есть новые Нет новых   [118667   +40][b:0][p:0]