powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получаем состояние принтера
3 сообщений из 3, страница 1 из 1
Получаем состояние принтера
    #33071731
Фотография Denis Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача у меня получить состояние принтера (проверить его готовность к печати), т.е. включен ли он, и т.д.

pPrinterInfo->Status - как я понимаю должет быть равен 0 только когда всё "OK" но у меня он равен 0 всегда (даже когда принтер выключен).
GetPrinter заполняет pPrinterInfo - может я что не так делаю, но другие значения(pPrinterInfo->pServerName, и.д.) выводятся правильно - значит как я понимаю структура возвращается нормальной.

подскажите что я не правильно понимаю или делаю вот исходник ниже (я его нашёл в нете - везде работает а у меня лажа или он у всех не работает ?)


DWORD cByteNeeded,nReturned,cByteUsed;
JOB_INFO_2 *pJobStorage = NULL;
PRINTER_INFO_2 *pPrinterInfo = NULL;
if (!GetPrinter(hPrinter, 2, NULL, 0, &cByteNeeded))
{
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) return FALSE;
}
pPrinterInfo = (PRINTER_INFO_2 *)malloc(cByteNeeded);
if (!(pPrinterInfo))
{printf("Error - alloc memory (pPrinterInfo)\n");return FALSE;}
if (!GetPrinter(hPrinter,
2,
(LPBYTE)pPrinterInfo,
cByteNeeded,
&cByteUsed))
{
printf("Error - access denide to printer\n");
free(pPrinterInfo);
pPrinterInfo = NULL;
return FALSE;
}

printf("\n****************************************************************************");
printf("\npServerName=%s",pPrinterInfo->pServerName);
printf("\npPrinterName=%s",pPrinterInfo->pPrinterName);
printf("\npShareName=%s",pPrinterInfo->pShareName);
printf("\npPortName=%s",pPrinterInfo->pPortName);
printf("\npDriverName=%s",pPrinterInfo->pDriverName);
printf("\npComment=%s",pPrinterInfo->pComment);
printf("\npLocation=%s",pPrinterInfo->pLocation);
printf("\npSepFile=%s",pPrinterInfo->pSepFile);
printf("\npPrintProcessor=%s",pPrinterInfo->pPrintProcessor);
printf("\npDatatype=%s",pPrinterInfo->pDatatype);
printf("\npLocation=%s",pPrinterInfo->pLocation);
printf("\npParameters=%s",pPrinterInfo->pParameters);
printf("\nAttributes=%d",pPrinterInfo->Attributes);
printf("\nPriority=%d",pPrinterInfo->Priority);
printf("\nDefaultPriority=%d",pPrinterInfo->DefaultPriority);
printf("\nStatus=%d",pPrinterInfo->Status);
printf("\ncJobs=%d",pPrinterInfo->cJobs);
printf("\n****************************************************************************\n");
...
Рейтинг: 0 / 0
Получаем состояние принтера
    #33072172
Фотография Denis Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или может кто нибудь узнавал состояние принтера другим способом ?
...
Рейтинг: 0 / 0
Получаем состояние принтера
    #33548061
AndrewF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня этот код тоже не работает, не удается получить хендл принтера функцией OpenPrinter, функция GetLastError возвращает код 87-неверный параметр, хотя принтер работающий и имя его правильное - проверял.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получаем состояние принтера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]