Как найти, на какой компьютер отправить задание на печать? - PullRequest
2 голосов
/ 09 августа 2010

Я создаю принтер PostScript для Windows 7, который будет принимать задания на печать и пересылать их на настоящие принтеры. Он будет доступен в локальной сети и может получать задания на печать с компьютеров локальной сети. Я хочу выяснить, с какого компьютера пришло задание на печать, прежде чем отправлять его на принтер. Как я могу это сделать? Доступны ли подробности в самом задании на печать? Спасибо

1 Ответ

3 голосов
/ 09 августа 2010

Посмотрите на функции API-диспетчера очереди печати GetJob и EnumJobs .Они оба возвращают одну из двух структур: JOB_INFO_1 или JOB_INFO_2 .Каждая структура содержит поле pMachineName, которое является именем машины, которая создала задание на печать.Вы можете найти следующие ссылки из pinvoke.net полезными.

http://www.pinvoke.net/default.aspx/Structures.JOB_INFO_1

http://www.pinvoke.net/default.aspx/winspool/EnumJobs.html

В качестве альтернативы, вы также можете посмотретьиспользовать WMI и класс Win32_PrintJob .В частности, свойство HostPrintQueue.

...