Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

SetPrinter возвращает ошибку

9.0K
07 февраля 2011 года
grag63
71 / / 23.01.2006
Функция SetPrinter возвращает ошибку 5 (отказано в доступе), но не смотря на это, устанавливаются параметры принтера. Возможно кто-то уже встречался с подобным явлением? Где и в чем "собака зарыта" и как с этим жить?
278
07 февраля 2011 года
Alexander92
1.1K / / 04.08.2008
Цитата:

не смотря на это, устанавливаются параметры принтера



Все параметры устанавливаются правильно? Просто может быть, что какой-то один из них и вызывает эту ошибку.

342
08 февраля 2011 года
Yos
209 / / 21.06.2003
Для начала хочется понять - какую цель вы приследуете используя указанную функцию...
9.0K
10 февраля 2011 года
grag63
71 / / 23.01.2006
Цель одна - установить параметры принтера по умолчанию (level 2, cmd 0). Сначало вызывается GetPrinter для получения первоначальных данных.
Что касаемо параметров, то при нестандартных размерах бумаги, они действительно не устанавливаются. Но ошибка возвращается и при стандартных размерах, когда все параметры устанавливаются (если не считать те, которые не изменяются).
342
12 февраля 2011 года
Yos
209 / / 21.06.2003
Привидите пожалуйста код, так как SetPrinter в принципе не возвращает код ошибки + интересует как вы заполняете DEVMODE...
9.0K
12 февраля 2011 года
grag63
71 / / 23.01.2006
// через стандартный диалог получаем DEVMODE
PrintDlg(&prnDlg);
LPDEVMODE lpdmode = (LPDEVMODE)GlobalLock(prnDlg.hDevMode);
BYTE cbufMode[0x1000] = {0};
PRINTER_INFO_2* lpPrntInfo2 = (PRINTER_INFO_2*)cbufMode;
OpenPrinter(lpdmode->dmDeviceName, &hPrinter, NULL);
GetPrinter(hPrinter, 2, cbufMode, sizeof(cbufMode), &dwNeeds);
lpPrntInfo2->pDevMode = lpdmode;
ierr = GetLastError(); // = 0, убеждаемся в отсутствии ошибок
SetPrinter(hPrinter, 2, cbufMode, 0);
ierr = GetLastError(); // = 5, а вот и ошибочка, но параметры выставлены
ClosePrinter(hPrinter);
277
12 февраля 2011 года
arrjj
1.7K / / 26.01.2011
GetLastError=5 означает ERROR_ACCESS_DENIED
Потомучто OpenPrinter с NULL в дефалт

пруф мелкософта:
Цитата:

......
Use the DesiredAccess member of the PRINTER_DEFAULTS structure to specify the access rights that you need to the printer. The access rights can be one of the following. (If pDefault is NULL, then the access rights are PRINTER_ACCESS_USE.)
Desired Access value Meaning
PRINTER_ACCESS_ADMINISTER To perform administrative tasks, such as those provided by SetPrinter.
PRINTER_ACCESS_USE To perform basic printing operations.
.....

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог