Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кто-нибудь знает, как удалить подключение к IPP принтеру?


AlexEgorov ©   (2007-09-19 12:49:00) 

Есть принтер \\ http://ps\GSPPHP LaserJet 1100 (это принтер на сервере http://ps)

Не могу его удалить DeletePrinterConnection не проходит, а GetLastError говорит, что операция прошла нормально. А из проводника получается удалить


AlexEgorov   (2007-09-21 12:52:00) [1]

Единственное решение, которое на данный момент нашёл - это удалять его в реестре и потом спулер перезапускать, но это не очень красиво, особенно для серверов печати предприятия, а вот проводник как-то с этим справляется :(


AlexEgorov   (2007-09-19 13:48:00) [2]

Но и как локальный (DeletePrinter) он не удаляется :(


AlexEgorov   (2007-09-19 13:38:00) [3]

Вот нашёл такую статейку: http://support.microsoft.com/kb/314486

Но в ней только про добавление IPP принтеров, хотя и полезная информация, получается, что IPP принтер это Имитирующий принтер, т.е. это и локальный, и сетевой принтер одновременно

Пример добавления принтера, поддерживающего протокол IPP

rundll32 printui.dll,PrintUIEntry /b "выводимое_имя_принтера_в_http" /x /n "часть_ключа_n" /if /f %windir%\inf\ntprint.inf /r " http://имя_узла/printers/имя_общего_ресурса/.printer" /m "HP Laserjet 4000 Series PCL"

Примечание. Сведения о ключе /x не отображаются по ключу /?. Наличие ключа /x предполагает наличие ключа /n, даже если он не используется. Принтер HP Laserjet 4000 Series PCL приведен для примера, возможно использование другого принтера. Ключ /x предполагает установку программы указания и печати через Web. Этот ключ указывает на то, что это имитирующий принтер. Имитирующий принтер — это и локальный, и сетевой принтер одновременно. Такой принтер получает от удаленного сервера печати подробные уведомления. Без ключа /x принтер будет локальным принтером с перенаправленным портом. Он будет работать правильно, но будет получать сокращенные уведомления. В данной статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких явных или подразумеваемых гарантий правильной работы или надежности таких продуктов.


Сергей М.   (2007-09-19 13:11:00) [4]

Хм ...

Может по этому поводу есть какие-то комментарии в msdn ?

Полистай ..


AlexEgorov   (2007-09-19 12:59:00) [5]

Этот же код отлично работает для обычных подключенных принтеров типа \\ps\\GSPP HP LaserJet 1100


AlexEgorov   (2007-09-19 12:57:00) [6]

if not DeletePrinterConnectionW(PWideChar(PrnName)) then
 MessageBoxW(Handle, PWideChar(WideSysErrorMessage(GetLastError)), PWideChar(tabQueue.Caption), MB_OK or MB_ICONERROR);

MessageBox выводит, что "Операция успешно завершена"


Сергей М.   (2007-09-19 12:52:00) [7]


> DeletePrinterConnection не проходит, а GetLastError говорит,
>  что операция прошла нормально


Как это так ?!

Покажи код, иллюстрирующий это утверждение ..


Наверх

Титульная страница Поиск, карта сайта Написать письмо