Собственно есть два метода сбора информации:
а) Сбор информации непосредственно с принтеров
б) Сбор информации с компьютеров через WMI
* перехват заданий на печать сразу отмели
Выбран второй способ. Написана прога. Клиентская часть поставлена на компьютеры пользователей, которая отправляет информацию в определённую БД на SQL-сервер в сети.
Всё вроде хорошо, но.....
В сети несколько одинаковых принтеров. А идентификация идёт по наименованию (pPrinterName). HP LaserJet Pro M501n, к примеру. Как понять на какой именно принтер прошла печать?
Нужен какой-то уникальный параметр. Mac-адрес или имя хоста.
Параметры для сбора информации взяты отсюда:
хттп://msdn.microsoft.com/en-us/library/windows/desktop/dd162864(v=vs.85).aspx
Однако я не нашёл там ничего о mac-адресе или имени хоста.
Но и это не всё. Ведь у пользователей может стоять USB-принтер. А если таких принтеров много? HP P1005, к примеру. А если некоторые принтеры расшарены? Тут вообще непонятно есть ли у USB-принтеров какой-то уникальный идентификатор.