Нужен совет по COM-порту (как обратится в порт уже открытый другой прогой?)

Тема в разделе "WASM.WIN32", создана пользователем drsat, 16 апр 2006.

  1. drsat

    drsat New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2006
    Сообщения:
    5
    Прошу помочь советом....

    Как обратится (запись/чтение) к уже открытому (занятому), другой

    программой, COM порту (БЕЗ изменения параметром (скорость, чётность,

    и.т.п.)). ???

    Я так понимаю надо хэндл получить, а как... ???

    И будет ли это работать (и как) через ReadFile и WriteFile (если обращатся из другой проги с хэндлом порта)???

    Желательно на ASM-e под Win98,2000,XP....
     
  2. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    drsat

    Та прога, которая уже юзает порт, ты писал?

    Если да, то напиши своего рода менеджер, пока проще ниче не могу сказать :)
     
  3. drsat

    drsat New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2006
    Сообщения:
    5
    Уважаемый EvilsInterrupt (Злые Прерывания)

    Если-бы я это прогу писал, то тут и вопросов-бы не было

    (Я-бы никогда-бы не оставил порт открытым - уж на

    CloseHandle - ума-бы хватило) А вот у немцев (те кто это писал) видимо не хватило.... они закрывают его только при выходе

    хотя больше не юзают....

    Прога хаспом защищена и сертификатами безопасности по этому

    надо на уровне портов решать, а прогу не трогать....

    (пожелание Босса)
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Ну перечисляй открытые хендлы портов в системе :) чтоб все хендлы (их очень много) не проверять - сверяй тип полученного хендла с константами OB_TYPE_ХХХХ
     
  5. drsat

    drsat New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2006
    Сообщения:
    5
    А по подробнее (желательно на асме), как и какими API это делается ?????



    Заранее СПАСИБО !!!
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    По подробнее написано в статье Ms Rem`a "3 метода работы с занятыми файлами". Там есть раздел поиск открытого хендла.

    Тебе еще наверняка придется проверять , относится ли найденный хендл , к твоей проге.
     
  7. drsat

    drsat New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2006
    Сообщения:
    5
    только одно НО, там рассмотрены NT-XP винды, а вот под 98

    ОБЛОМС ОДНАКО !!!!!!
     
  8. Chingachguk

    Chingachguk New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2002
    Сообщения:
    340
    Прога хаспом...



    Что за хасп?



    drsat



    В 98 легко перехватывается обмен по COM-порту на уровне VXD-драйверов. Могу предложить вырезать из моего логгера все лишнее (см. аттач) и сделать перенаправление COM1,COM2->COM1 (например). Те если программа пишет в COM1, то ты пишешь в COM2, но драйвер все "сливает" в COM1, в котором действительно есть устройство.



    [​IMG] _181334929__Hook.arj
     
  9. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    хасп на com-порту?
     
  10. AHTLLIKA

    AHTLLIKA AHTOLLlKA

    Публикаций:
    0
    Регистрация:
    3 май 2006
    Сообщения:
    8
    Chingachguk

    вот типа лог

    OpenComm:COM2 Result:EAX:c16c1364

    WriteComm:port:c16c1364 cchRequested:00000005 Result:EAX:00000001 cchWritten:00000005 Sended buffer:1bh,2eh,52h,32h,3ah,

    ReadComm:port:c16c1364 cchRequested:00000010 Result:EAX:ffffffff cchReceived:00000010 Received buffer:4fh,52h,32h,2ch,31h,36h,31h,35h,31h,2ch,37h,37h,38h,35h,3bh,0dh ,

    CloseComm:port:c16c1364 Result:EAX:c16c1365 Result:EAX:00000004



    как выдрать из этого данные

    4fh,52h,32h,2ch,31h,36h,31h,35h,31h,2ch,37h,37h,38h,35h,3bh,0dh,

    это ответ и должно быть что то типа этого

    403.78

    194.63
     
  11. AHTOLLIKA

    AHTOLLIKA New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    17
    Адрес:
    Russia
  12. AHTOLLIKA

    AHTOLLIKA New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    17
    Адрес:
    Russia
    ппц ещё один АП

    просто оч надо .. в инете чето не смох найти нормальной инфы((
     
  13. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    AHTLLIKA



    Там же исходники в архиве!





    Если прочитать буфер в ascii, получается такое:
    Код (Text):
    1. OR 2,1615 1,7785;.
     
  14. AHTOLLIKA

    AHTOLLIKA New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    17
    Адрес:
    Russia
    OR 2,1615 1,7785;.

    хм... и чтоб это могло значить..
     
  15. AHTLLIKA

    AHTLLIKA AHTOLLlKA

    Публикаций:
    0
    Регистрация:
    3 май 2006
    Сообщения:
    8
    тоесть сначала на СОМ порт идет запрос

    1bh,2eh,52h,32h,3ah

    то есть:

    .R2:



    и на это он отвечает

    4fh,52h,32h,2ch,31h,36h,31h,35h,31h,2ch,37h,37h,38h,35h,3bh,0dh

    то есть:

    OR2,16151,7785;





    16151 = 403.78

    7785 = 194.63



    хз.. если 16151 / 403.78 получиться примерно 40

    и потом если 7785 / 40 то получиться примерно 194.63 =))

    че там меньше миллиметра идет ??
     
  16. Sh355

    Sh355 New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2004
    Сообщения:
    56
    Заюзай port splitter - шарит один реальный порт на несколько виртуальных. И цепляй обе программы к виртуальным портам, если есть возможность