Здравствуйте Patalog, Вы писали:
P>Здравствуйте magcyril, Вы писали:
M>>Привет,
M>>задача: изменить качество печати документов на сетевом принтере для данного пользователя
M>>проблема: после установки необходимых параметров при вызове SetPrinter выдается ошибка "Access denied". Судя по всему, вызов пытается изменить настройки печати непосредственно на сетевом принтере и терпит неудачу. В документации на
M>>microsoft сказано, что есть два способа подключения к принтеру:
M>>1. по friendly name
M>>2. по UNC
M>>если подключаться по UNC, то возникает описанная выше проблема
M>>как получить friendly name вообще не ясно, т.к. функции API (на Win2K) возвращают имя принтера только в формате UNC
M>>Как с этим бороться?
P>А поменять параметры в DEVMODE перед вызовом OpenPrinter не получается? Я именно так и делаю, и вроде работает...
P>А что касается PrinterName, ShareName, PortName и иже с ними, то скорее всего и не дадут, если конечно ты не админ. Впрочем это более другие параметры и к качеству печати отношения не имеют.
я пытался менять только pDevMode->dmPrintQuality (и dmFields = DM_PRINTQUALITY соответственно) причем как с вызовом DocumentProperties (рекомендация MSDN), так и без него (GetPrinter может и так получить PRINTER_INFO_2), но при вызове SetPrinter всегда получаю ошибку "Access is denied"