![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Програмно отключить LPT [D5, Win2k]
Анатолий © (2004-07-07 12:29:00)Доброго времени суток. Можно ли програмно отключить паралельный порт. как это может сделать пользователь из "диспечера устройств"? Ну и, если нужно, включить потом, разумеется :)
DC-AC (2004-07-08 12:14:00) [1]1. SetCommState не работает на LPT.
2. Если порт занят печатью - значит нужно искать ТО, что отправляет задание на печать, а не пытаться отключить порт.
P.S. Некоторые статус мониторы некоторых принтеров (OKI,CANON) забирают порт "навечно" и программно к нему уже не пробиться, пока статус монитор не "грохнешь". Может быть у тебя такой случай ?
ssk (2004-07-08 09:34:00) [2]LockFile ?
http://www.infoved.ru/doc/briz_help/html/iof43.htm
Анатолий (2004-07-07 15:13:00) [3]Спасибо за ваше внимание. Очень приятно что уделили время моей проблеме. :)
Sandman25 (2004-07-07 15:07:00) [4]Но диспетчере устройств же как-то отключает. Причем программно. Может посылает сообщение спулеру, чтобы тот "отпустил" порт, может еще как-то.
Я Вам помочь не могу, к сожалению, знаний не хватает. Сегодня впервые узнал про функцию SetCommState :)
Анатолий (2004-07-07 15:03:00) [5]Да, но как? Каким кодом?... Я же не могу получить хендл даже..
Sandman25 (2004-07-07 14:13:00) [6]Значит, нужно попытаться программно выполнить то же самое - отключить порт.
Анатолий (2004-07-07 12:51:00) [7]Ага, так дело в том, что CreateFile я не могу. Потому что порт занят спулером печати (стандартным виндовым). А я хочу забрать его себе как раз через CreateFile и тут LastError - "отказано в доступе". Я отключаю порт в "диспечере устройств", спулер его отпускает, потом включаю, и тогда CreateFile работает, и я его использую. Видно это все через ProcessExplorer.
Sandman25 (2004-07-07 12:34:00) [8]CreateFile и SetCommState, наверное