| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Точная идентификация принтеров |
| Автор: Empire 31.1.2011, 08:28 |
| Добрый день. Прошу Вашей помощи, т.к. сам ещё новичок в Delphi. Цель: создать систему регистрации разрешённых принтеров для печати. Идеальные условия: поиск принтеров в сети (даже если они не установлены на клиенте), их идентификация (с учётом того, что администраторы могут изменить имя принтера, или изменить DNS имя компьютера), а так же идентификация локальных принтеров. При этом нужно учитывать, что принтеров одной модели может быть несколько. Я порыскал на форуме и научился некоторую информация о принтере вытаскивать из локальной системы. Но, ни какого способа уникально идентифицировать принтер не нашёл. А про сетевой поиск принтеров мне ни чего не попалось. P.S. Помогите, пожалуйста |
| Автор: Empire 4.2.2011, 21:22 |
| Да.... видно этим геморроем ни кто не занимался. К сожалению это не моя прихоть, поэтому буду придумывать дальше... |
| Автор: casinosoftguru 7.2.2011, 16:05 |
| Насчет тех что установлены, описано тут http://forum.ixbt.com/topic.cgi?id=40:657 Насчет тех что не установлены. Можно придумать некий диалог где пользователь укажет где искать принтеры - например если дело происходит в офисе, и в офисе есть домен то соответственно надо искать в этом домене (поиск по Active Directory), например как вот на скриншоте диалог поиска винды (как его юзать из делфи можно легко найти в гугле). ![]() Можно предложить пользователю составить список возможных имен, и искать еще по ним также через функции поиска принтеров. Можно посоветоваться с админом вашей сети\сетей, или с заказчиком\шефом на предмет составления списка возможных имен серверов с принтерами. Включи мозг, проведи исследование сети, составь список возможных имен принтеров. Также тебе придется обработать ситуацию с установкой драйверов принтера, и соответственно их поиском - я бы кинул это тоже на пользователя, вызвав стандартный диалог винды, пусть она ищет дрова автоматически или пользователь сам выбирает. Лучше чем у винды алгоритм поиска драйверов ты вряд ли напишешь, если только составишь собственную базу принтеров и драйверов, купишь например пару дисков типа "драйвера для принтеров 2010" ))) Правда по моему это идиотизм но все же ))) |
| Автор: Empire 8.2.2011, 03:09 |
| Большое спасибо за подсказку Жалко, что у принтеров нет уникального серийного номера (что-то типа USBSTOR у USB устройств), который можно было бы получить из устройства. |
| Автор: CodeMonkey 8.2.2011, 10:41 |
| Ну может и есть. Через какой-нибудь SetupAPI можно попробовать глянуть. Только вот есть мнение, что даже если это есть, то применимо только локально, но никак не по сети. |