![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Handle на все принтеры установленные в системе [D7, WinXP]
snoopy © (2007-10-14 02:03:00)Доброго времени суток!
Очень интересует, каким образом можно получить указатели (THandle) на все принтеры установленные в системе?
Для принтера, выбранного по умолчанию получаю так:
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
А как взять для остальных не доходит =\
Сергей М. (2007-10-15 11:53:00) [1]
> хэндл на него должен быть?
Должен, если ты запросишь его у системы.
см. OpenPrinter
snoopy (2007-10-14 12:56:00) [2]Для того, чтобы пройтись по всем принтерам и для каждого узнать список заданий через EnumJobs();
Ведь принтер может иметь задание, даже если он не выбран по умолчанию..значит и хэндл на него должен быть? Я не прав?
Кстати, опытным путем проверено, что если хотя бы один принтер установлен, хэндл на него ловится)
В принципе можно и без хэндлов, вот так:
for print_num := 0 to Printer.Printers.Count-1 do
Jobs := GetSpoolerJobs(Printer.Printers.Strings[print_cnt]);
но хочется через EnumJobs
Германн (2007-10-14 02:12:00) [3]
> Очень интересует, каким образом можно получить указатели
> (THandle) на все принтеры установленные в системе?
А ты уверен что "рукоятки" есть всегдадля всех установленных принтеров?
Зачем тебе хэндлы для "всех"? Их ведь может и "не быть реально". Даже ни одного!