| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как приостановить работу с COM портом? |
| Автор: csander 6.4.2009, 08:25 | ||
| Доброго времени суток всем. Хотелось бы попросить помочь в решении проблемы: Есть приложение, написанное на Delphi для термопринтера Citizen PPU-700, которое печатает чек:
Но есть и основное ПО киоска, которое постоянно висит на COM порте. При нажатии на кнопку "Печать", чек не печатается. Но при завершении работы ПО киоска, он естественно выходит на печать. Вопрос: Можно ли каким то образом вмешаться в работу ПО киоска через АПИ функции, чтобы приостановить его работу с портом, и распечатать? |
| Автор: Romikgy 6.4.2009, 14:12 |
| имхо можно перезапускать в принудительном порядке, или писать в порты напрямую.... |
| Автор: csander 6.4.2009, 17:22 |
| а как писать напрямую в порт? никогда с этим не сталкивался, поэтому был бы признателен любой помощи |
| Автор: Virtuals 7.4.2009, 05:24 |
| csander, http://forum.vingrad.ru/forum/topic-254374/anchor-entry1835068/0.html#look ЗЫ имхо скачай DRKB, надолго хватит для изучения основ и не только |
| Автор: csander 8.4.2009, 07:00 |
| то что предложил форум не то, что нужно. там только описание как работать с портом. а мне нужно процесс, который висит на порте заморозить. а после того, как я выполню то что мне нужно, разморозить, чтобы процесс продолжил работу. каким образом можно остановить процесс, зная только имя процесса и все? не зная PID... |
| Автор: MetalFan 8.4.2009, 08:43 |
ну PID по имени получить какбы не проблема вроде... |
| Автор: Virtuals 8.4.2009, 12:47 |
| csander, батенька да вы маньяк, зачем вам это нужно? учтите что порты относятся к устройствам, которые разрешено использовать только одному процессу. так что просто заморозка процесса вам не поможет. винда отошьет с ошибкой "порт занят другим процессом". |
| Автор: csander 9.4.2009, 08:56 |
| а снять порт с процесса на определенный период времени можно? |
| Автор: Virtuals 10.4.2009, 07:00 |
| csander, не надо этого делать. озвуч задачу подробней, может есть более красивое решение. ну зачем тебе нужно оставлять чужую прогу на порту? может пойти другим путем? напр с другого порта слать данные, и аппаратно их переключать? типа ком1 по киоска ком2 твоя прога, дернув дтр, релюха порт принтера перекинет на тебя, и мучай его как хочеш |